C语言运算符 下载本文

1、求余运算符:%

2、以下实例演示了 a++ 与 ++a 的区别: 实例

#include int main() { int c; int a = 10; c = a++;

printf(\先赋值后运算:\\n\printf(\的值是 %d\\n\printf(\的值是 %d\\n\ a = 10; c = a--;

printf(\的值是 %d\\n\printf(\的值是 %d\\n\printf(\先运算后赋值:\\n\ a = 10; c = ++a;

printf(\的值是 %d\\n\printf(\的值是 %d\\n\ a = 10; c = --a;

printf(\的值是 %d\\n\printf(\的值是 %d\\n\ }

以上程序执行输出结果为: 先赋值后运算: Line 1 - c 的值是 10 Line 2 - a 的值是 11 Line 3 - c 的值是 10 Line 4 - a 的值是 9 先运算后赋值: Line 5 - c 的值是 11 Line 6 - a 的值是 11 Line 7 - c 的值是 9 Line 8 - a 的值是 9 位运算符

位运算符作用于位,并逐位执行操作。&、 | 和 ^ 的真值表如下所示: 假设如果 A = 60,且 B = 13,现在以二进制格式表示,它们如下所示: A = 0011 1100 B = 0000 1101 A&B = 0000 1100 A|B = 0011 1101 A^B = 0011 0001 ~A = 1100 0011

下表显示了 C 语言支持的位运算符。假设变量 A 的值为 60,变量 B 的值为 13,则: & 如果同时存在于两个操作数中,二进制 AND 运算符复制一位到结果中。 0000 1100

| 如果存在于任一操作数中,二进制 OR 运算符复制一位到结果中。 (A | B) 将得到 61,即为 0011 1101

^ 如果存在于其中一个操作数中但不同时存在于两个操作数中,二进制异或运算符复制一位到结果中。 (A ^ B) 将得到 49,即为 0011 0001

(A & B) 将得到 12,即为

~ 二进制补码运算符是一元运算符,具有\翻转\位效果,即0变成1,1变成0。 即为 1100 0011,一个有符号二进制数的补码形式。

<< 1111 0000

>> 1111

杂项运算符?sizeof&三元? :

下表列出了 C 语言支持的其他一些重要的运算符,包括 sizeof 和 ? :。

运算符 描述 实例 (~A ) 将得到 -61,

二进制左移运算符。左操作数的值向左移动右操作数指定的位数。 A << 2 将得到 240,即为

二进制右移运算符。左操作数的值向右移动右操作数指定的位数。 A >> 2 将得到 15,即为 0000

sizeof() & * ? : 返回变量的大小。 返回变量的地址。 指向一个变量。 条件表达式 sizeof(a) 将返回 4,其中 a 是整数。 &a; 将给出变量的实际地址。 *a; 将指向一个变量。 如果条件为真 ? 则值为 X : 否则值为 Y