03-运算符

1.运算符

1.1 算术运算符

+
-
*
/
++
--
% -- 取余
# include <stdio.h>

int main()
{
  int a = 15,b = 8,c;
  c = a + b;
  printf("c = %d\n",c);

  c = a - b;
  printf("c = %d\n",c);

  c = a * b;
  printf("c = %d\n",c);

  c = a / b;
  printf("c = %d\n",c);
  
  c = a % b;
  printf("c = %d\n",c);
  
  return 0;

}
# include <stdio.h>

int main()
{
  float a = 15,b = 8,c;
  c = a + b;
  printf("c = %f\n",c);

  c = a - b;
  printf("c = %f\n",c);

  c = a * b;
  printf("c = %f\n",c);

  c = a / b;
  printf("c = %f\n",c);
  
  // float是不能进行取余操作
  // c = a % b;
  // printf("c = %f\n",c);
  
  return 0;

}

1.2 关系运算符

> < >= <=  == !==
  • 通常是用在条件判断中

1.3 逻辑运算符

! -- 非
&& -- 逻辑与(短路与)
|| -- 逻辑或(短路或)

1.4 位运算

~ -- 按位取反
#include <stdio.h>

int main()
{
   
  unsigned char x = 0x17,y;
  y = ~x; // x:0001_0111   y = 1110_1000  e8

  printf("%#x\n",y); // %#x -- x表示16进制打印,#表示自动补齐0x
  return 0;
}
& -- 按位与 
unsigned char x = 0126, y = 0xac,z;
z = x & y;

x    01_010_110
y    1010_1100
x&y  00000100  0x04

| -- 按位或
unsigned char x = 076,y = 0x89,z;
z = x | y;

x    00111110
y    10001001
z    10111111
^ -- 按位异或
unsigned char x = 75,y = 0173,z;
z = x ^ y;
移位运算
运算量 运算符 表达式
unsigned char a = 0xe4,b;
b = a << 3;
a   1110 0100
b   0010 0000  -- 0x20


#include <stdio.h>

int main()
{
  unsigned char a = 0x4,b,c,d;
  b = a << 1;
  C = a << 2;
  d = a << 3;
  printf("%#x\n",a); // a = 0000_0100 b = 0000_1000 8
  printf("%#x\n",a); // 16
  printf("%#x\n",a); // 32
  
  return 0;
}
  • 左移一位,扩大两倍

1.5 复合赋值运算符

+=
-=
/=
%=
...

#include <stdio.h>
int main()
{
  int count,sum;
  count = 0;
  sum = 0;
  while(count++ < 20) {
    sum += count;
  }
  printf("sum = %d\n",sum);

  return 0;
}

1.5 三目运算符

表达式1 ? 表达式2 : 表达式3
int x = 82, y = 101;
x >=y ? x+18:y-100
x<(y-11):x-22:y-1

#include <stdio.h>

int main()
{
  int x,y;
  x = 70;
  y = x++ > 70 ? 100 : 0;
  printf("x = %d y = %d\n",x,y); // 71 0
  return 0;
}

1.7 逗号运算符

执行顺序是从左到右,结果由最后一个表达式决定
float x = 10.5,y = 1.8,z = 0;
z = (x +=5,y = x+0.2);  //z =10.7

1.8 sizeof运算符

sizeof(数据类型)
sizeof(数组)
sizeof(变量名)

1.9 运算符的优先级


posted @ 2023-05-17 03:10  Icer_Newer  阅读(11)  评论(0编辑  收藏  举报