1 运算符表达式和语句
1.1 基本运算符
1.1.1 =
数据对象:泛指数据在内存的存储区域
左值:表示可以被更改的数据对象
右值:能赋给左值的量
1.1.2 +
加
1.1.3 –
减
1.1.4 *
乘
1.1.5 /
除
1.1.6 %
取余数
1.1.7 +=
加等于
1.1.8 -=
减等于
1.1.9 *=
乘等于
1.1.10 /=
除等于
1.1.11 %=
取余等于
1.1.12 ++
自加1
,i++先计算表达式的值,然后再++
,++i是先++,再计算表达式的值
1.1.13 --
自减一
1.1.14 逗号运算符
int a = 2;
int b = 3;
int c = 4;
int d = 5;
int i = (a = b, c + d);
逗号表达式先求逗号左边的值,然后求右边的值,整个语句的值是逗号右边的值。
1.1.15 运算符优先级
优先级
运算符
结合性
1
++(后缀),--(后缀),()(调用函数),{}(语句块),.,->
从左到右
2
++(前缀),--(前缀),+(前缀),-(前缀),!(前缀),~(前缀),sizeof,*(取指针值),&(取地址),(type)(类型转化)
从右到左
3
*, /, %
从左到右
4
+,-
从左到右
5
<< >>
从左到右
6
< > <= >=
从左到右
7
== !=
从左到右
8
&
从左到右
9
^
从左到右
10
|
从左到右
11
&&
从左到右
12
||
从左到右
13
?
从右到左
14
=,*=,%=,+=,-=,<<=,>>=,&=,|=,^=
从右到左
15
,(逗号运算符)
从左到右
1.2 复合语句
{}代码块
1.3 空语句
只有一个;号的语句就是空语句,空语句在C语言里面和合法的,并且是在某些场合必用的
1.4 类型转化
double f = (double)3 / 2;
()为强制类型转化运算符
#include
intmain01()
{int a = 10;int b = 3;int c = a %b;
printf("c = %d\n", c);//a = a + 5;//语法正确,但是是个菜鸟
a += 5;
a= a + 1;
a+= 1;
a++;
a= a - 1;
a-= 1;
a--;return 0;
}intmain02()
{int i = 5;//i++;//++i;//int a = ++i;//int a = i++;
int a = i++ + ++i;//i = i + 1;//int a = i + i;//i = i + 1;
printf("%d\n", a);
printf("%d\n", i);return 0;
}intmain03()
{int a = 2;int b = 3;int c = 4;int d = 5;int i = (a = b, a +d);
printf("i = %d\n", i);
a= 2; b = 3; c = 4; d = 5;
i= (a + (b - c)) *d;
printf("i = %d\n", i);
a= 4;
b= 3;
c= 8;
i= a = b =c;
printf("i = %d\n", i);
{
i= 100;
a= 30;
}
;//空语句
printf("i = %d\n", i);for (; ; )//循环语句,代表复合语句内部的代码要执行3次
{
printf("hello\n");
}return 0;
}intmain()
{//double f = 3 / 2;//c语言两个整数相除的结果自动转化为一个整数//double f = (double)3 / 2;//(double)3,意思是将整数3强制转化为double型//double f = 3.0 / 2;
int a = 3;int b = 2;double f = (double)a /b;
printf("%f\n", f);return 0;
}
资料来源:传智播客 仅供学习研究