C语言--运算符 *、&、?

赋值运算符

= 右移且赋值运算符 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

如有理解错误之处,请多多包涵

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值