【C语言】浅涉操作符分类及解析

简单不先于复杂,而是在复杂之后。 

6d03c0c0585d43fdacf1594332923487.jpeg

目录

算数操作符

 移位操作符

位操作符

赋值操作符

单目操作符

关系操作符

逻辑操作符

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

逗号表达式

下标引用操作符

函数调用操作符


几乎每一个程序都需要进行计算,对数据进行加工处理,否则程序就没有意义了。要进行运算,就需规定可以使用的运算符。C语言的运算符范围很宽,把除了控制语句和输入输出以外几乎所有的基本操作都作为运算符处理。

算数操作符

+  -  *  /  %

int main()
{
   //除号两端都是整数时执行的是整数除法,只要有一端是浮点数就执行浮点数的除法
   int a = 7 / 2;
   printf("%d\n", a);//打印结果3
 
   float c = 7 / 2.0;
   printf("%.1f\n", c);//打印3.5(小数点后一位)

   int b = 7 % 2;//取模(7/2得到的余数)
   //取模操作符两端只能是整数
   printf("%d\n",b);//打印结果1


   return 0;
}

 移位操作符

>> <<
//涉及二进制计算

位操作符

& - 按位与
^ - 按位异或
| - 按位或

赋值操作符

=

int a = 0;
//创建变量时赋值叫初始化
a = 0;//赋值

+=

a = a + 3;
a += 3;//简化

-=

a = a - 3;
a -= 3;

*= 

/=

&=

^=

|=

>>=

<<=

单目操作符

a + b;

  +  双目操作符
单目操作符 - 只有一个操作数的操作符
! - 逻辑反操作(真假互变)
C语言中0表示假,非0表示真

int main()
{
   int a = 0;
   if(!a)
   {
      printf("hehe\n");//打印hehe,若a非0则反之
   }

 
   return 0;
}

- 正负互变 

int main()
{
   int a = -10;
   int b = -a;
   printf("%d\b", b);
   //打印结果为10

   return 0;
}

+  正值 

&  取地址 

sizeof - 操作数的类型长度(单位是字节)

int main()
{   
   int a = 10;
   printf("%d\n", sizeof(a));//打印4 (一字为两字节)
   printf("%d\n", sizeof(int));//打印4
   printf("%d\n", sizeof a);//sizeof 不是函数,()可以省略
   printf("%d\n", sizeof int);//语法不支持,类型()不能省略

   int arr[10] = {0};
   printf("%d\n", sizeof(arr));//打印40, 计算整个数组的大小
   pritnf("%d\n", sizeof(arr[0]));//打印4
   printf("%d\n", sizeof(arr)\sizeof()arr[0]);计算数组中的元素个数

   return 0;
}

~   对一个数的二进制按位取反 

++  前置、后置++
--  前置、后置--

int main()
{
   int a = 10;
   int b = a++;\\后置++,先使用,后++
   //int b = a; a = a + 1;
   printf("%d\n", a);打印11
   printf("%d\n", b);打印10

   int a = 10;
   int b = ++a;
   //a = a + 1; b = a;
   printf("%d\n", a);//打印11
   printf("%d\n", b);//打印11

   return 0;
}

*   间接访问操作符(解引用操作符) 

(类型) 强制类型转换

int main()
{
   int a = (int)3.14;
   //字面浮点数,编译器默认为double
   printf("%d\n", a );//打印结果3

   return 0;
}

关系操作符

>
>=
<
<=
!=   用于测试“不相等”
==   用于测试“相等”

逻辑操作符

&&   逻辑与 - 并且
||   逻辑或 - 或者

int main()
{
   int a = 10;
   int b = 20;
   if(a && b)
   {
    printf("hehe\n")
   }

   return 0;
}

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

exp1 ? exp1 : exp2
int main()
{
   int a = 10;
   int b = 20;
   int c = a > b? a :b;
   printf("%d\n", c);//打印20

   return 0;
}

逗号表达式

exp1, exp2, exp3······expN

//由逗号隔开的一串表达式
//逗号表达式的特点是:从左向右依次计算,整个表达式的结构是最后一个表达式的结构。

int main()
{
   int a = 4;
   int b = 9;
   int c = 0;
   //       c = 2    a = 11     -1;
   int d = (c = a-2, a = b + c; c - 3);
   printf("%d\n",  d);//打印-1

   return 0;
}

下标引用操作符

[]

int main()
{
   int arr[10] = {0, 1, 2, 3, 4, 5, 6, ,7, 8, 9};
   arr[3] = 100;
   //就是下标引用操作符,arr和3就是[]的操作数

   int n = 4;
   arr[n] =20;

   return 0;
}

函数调用操作符

()   函数调用操作符

int Add(int x, int y);
{
   return x + y;
}

int main()
{
   int sum = Add(3,4);//Add,3,4都是()的操作数 

   return 0;
}

  • 2
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 2
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

2024_极限年

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值