赋值运算符
= 右移且赋值运算符 C >>= 2 等同于 C = C >> 2
&= 按位与且赋值运算符 C &= 2 等同于 C = C & 2
^= 按位异或且赋值运算符 C ^= 2 等同于 C = C ^ 2
|= 按位或且赋值运算符 C |= 2 等同于 C = C | 2
%= 求余且赋值运算符,求两个操作数的余赋值给左边操作数 C %= A 相当于 C = C % A
<<= 左移且赋值运算符 C <<= 2 等同于 C = C << 2
#include <stdio.h>
main()
{
int a = 21;
int c ;
c = 200;
c %= a;
printf("Line 6 : %= 运算符实例,c 的值 = %d\n", c );
c <<= 2;
printf("Line 7 : <<= 运算符实例,c 的值 = %d\n", c );
c >>= 2;
printf("Line 8 : >>= 运算符实例,c 的值 = %d\n", c );
c &= 2;
printf("Line 9 : &= 运算符实例,c 的值 = %d\n", c );
c ^= 2;
printf("Line 10 : ^= 运算符实例,c 的值 = %d\n", c );
c |= 2;
printf("Line 11 : |= 运算符实例,c 的值 = %d\n", c );
}
编译结果:
Line 6 : %= 运算符实例,c 的值 = 11
Line 7 : <<= 运算符实例,c 的值 = 44
Line 8 : >>= 运算符实例,c 的值 = 11
Line 9 : &= 运算符实例,c 的值 = 2
Line 10 : ^= 运算符实例,c 的值 = 0
Line 11 : |= 运算符实例,c 的值 = 2
& :返回变量的地址。 &a:将给出变量的实际地址。
*: 指向一个变量。 *a:将指向一个变量。
? : 条件表达式 如果条件为真 ? 则值为 X : 否则值为 Y
举例:
#include <stdio.h>
int main()
{
int a = 4;
short b;
double c;
int* ptr;
/* & 和 * 运算符实例 */
ptr = &a; /* ptr 现在包含 'a' 的地址 */
printf("a 的值是 %d\n", a);
printf("*ptr 是 %d\n", *ptr);
/* 三元运算符实例 */
a = 10;//重新定义a的值
b = (a == 1) ? 20: 30;//应该可以等同于 if(a==1) b=20;else b=30
printf( "b 的值是 %d\n", b ); //所以输出b=30
b = (a == 10) ? 20: 30;//a==10为真所以b=20
printf( "b 的值是 %d\n", b );
}
当上面的代码被编译和执行时,它会产生下列结果:
a 的值是 4
*ptr 是 4
b 的值是 30
b 的值是 20
如有理解错误之处,请多多包涵