内容发布更新时间 : 2025/1/10 0:36:31星期一 下面是文章的全部内容请认真阅读。
1、求余运算符:%
2、以下实例演示了 a++ 与 ++a 的区别: 实例
#include
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