操作符 2024/2/14

1! 反转变量的真假

if (a)
	{
		当a为真时执行
	}

if (!a)
	{
		当a为假时执行
	}

 2.sizeof 计算类型或变量大

printf("%d\n", sizeof(int));
int a = 0;
printf("%d\n", sizeof a);//sizeof求变量时后括号可省略
       //sizeof计算数组
int arr[10];
printf("%d\n", sizeof(arr));
printf("%d\n", sizeof(arr[0]));
       //sizeof计算数组内个数
int sz = sizeof(arr) / sizeof(arr[0]);
printf("%d\n", sz);

3.~ 将数据按二进制反取,0变1,1变0 

 整数在内存中以补码形式存储
 一个整数的二进制表达方式有三种:
        1原码
        2反码
        2补码
    如 -1:     负数计算                                                 !!!正整数的原码、反码、补码相同
      1000 0000 0000 0001(原码)-1的二进制表达
      1111 1111 1111 1110(反码)-1的符号位不变,其他位反取
      1111 1111 1111 1110(补码)在二进制形式下加1
   

4.逻辑操作符

     1. && 并且 当左右均为真方为真

    int a = 5; 
          int b = 4;
          int c = a && b;
          printf("%d\n",c);


        2.|| 或者 左右有一个为真就算真

          int a = 5;
          int b = 4;
          int c = a || b;
          printf("%d\n", c);

5.条件操作符(三目操作符)

 格式   表达式1 ? 表达式2 : 表达式3
 逻辑   表达式1成立-- > 表达式2计算并将其结果作为整个式子的结果
           表达式1不成立 > 表达式3计算并将其结果作为整个式子的结果
 例子 比大小

        int a = 0;
        int b = 0;
        scanf("%d%d", &a, &b);
        int c = 0;
        if (a >= b)
         {
            c = a;
         }
        else
         {
            c = b;
         }
         printf("max=%d", c);



        int a = 0; 
        int b = 5;
        int max = 0;
        max = a > b ? a : b;
        printf("%d\n",max);

 6.逗号表达式 逗号隔开的一串表达式

   格式 (表达式1, 表达式2, 表达式3, 表达式4)

              注:逗号表达式从左到右依次计算 整个表达式的结果是最右边的表达式
   例子  

            int a = 0;
            int b = 5;
            int c = 3;
            int d = (a = b + 8, b = c - 4, c = a + b);
            printf("%d\n", d);

 7.函数调用操作符 如 () [] . 

8.指针运算符 & * . ->

   1. &   (a)取地址: &a即为取变量a的地址 
   2. *    (a) 乘法运算  (b)  表明变量为指针变量:int * ps = &a;其中int为变量a的类型 ps为指针               变量 

   3. .    (a)结构体.成员变量

  4. ->   (a)结构体指针->成员变量名

struct stu s = { "梅比乌斯",20,99.9 };//结构体创建和初始化
printf("1:%s %d %lf\n",s.name,s.age,s.score);//结构体.成员变量
//下两种为已知结构体箭头指针
struct stu * ps =  &s;
printf("2:%s %d %lf\n",(*ps).name,(*ps).age,(*ps).score);

printf("3:%s %d %lf\n", ps->name, ps->age, ps->score);//结构体指针->成员变量名

  
  • 12
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值