大家好,欢迎来大家参考我的文章,学习任何一门语言都非常需要强大的实践能力,理论知识,学习C语言是个很漫长的过程,学习到后面还需要算法数据结构的支撑,再到后面大家就可以尝试一些比赛:蓝桥杯...检验自己的实力,这是我的第二篇文章,我呢一直在以白话文方式,少使用编程语言术语,让更好理解C语言的过程内容,谢谢支持!
C语言的运算符:
简单记忆:!>算术运算符>关系运算符>&&>||>赋值运算符
在C语言中运算符号存在优先级与结合性
在C语言中除了单目运算,赋值运算和条件运算符是右结合外,其他运算符都是左结合。
运算符类 | 运算符 | 运算形式 | 结合方向 |
算术运算符 | +,- *(乘),/(除),%(余) ++(加加),--(减减) | 双目运算 单目运算 | 自左向右 自右向左 |
关系运算符 | >,<,>=,<= !=(不等于),== | 双目运算 | 自左向右 |
1,运算符形式:单目双目是以运算操作符号的单个和双个来确定;
例如:
>(大于号) a>b 用到两个操作符
++ : a++ 用到一个操作符
2,自左向右:
例如:
x-y+z //先执行x-y,再执行+z (x-y)+z
3,自右向左:
例如:
x=y=z //先执行y=z,再执行x=y x=(y=z)
int i=3,y;
y=-i++;
因为++的右结合性,所以y=-i++等价于y=(-i++),所以y值为-3,而i的值为4.
例如:
++i // i+1=b;
--i // a+b=c;
// 先加1或减一后运算
i++ // a+b=i;
// i+1=c;
i-- // 先运算后加一或减一
练习
分析程序:
#include<staio.h>
int main()
{
int x=3,y,z;
y=x++;
z=++x;
printf("x=%d,y=%d,z=%d\n",x,y,z);
return 0;
}
最好手写推算一下:
最终结果: