- 一、表达式
- 二、赋值运算符与赋值表达式
- 1、变量赋初值
- a、常数赋值给变量
- b、赋值表达式为变量赋值
- 2、自动类型转换
- 3、强制类型转换
- 三、算术运算符与算术表达式
- 1、算术运算符
- 2、算术表达式
- 3、优先级和结合性
- 4、自增 自减运算符
- 四、关系运算符与关系表达式
- 1、关系运算符
- 2、关系表达式
- 五、逻辑运算符与逻辑表达式
- 1、逻辑运算符
- 2、逻辑表达式
- 六、位逻辑运算符与为逻辑表达式
- 七、逗号运算符和逗号表达式
- 八、复合赋值运算符
- 十、实践与练习
1、是C语言的主体
2、由 *** 作符和 *** 作数组成
3、又有简单表达式(只有一个 *** 作符)和复杂表达式(两个或两个以上 *** 作符)
4、表达式放在赋值语句的右侧
#include二、赋值运算符与赋值表达式int main() { int a,b,c; //声明变量 使用逗号分隔变量 a=10; //变量赋值 b=3; c=a-b+1; //表达式 printf("c的值为:%d",c); //结果为 8 逗号分隔参数 逗号也可作为分割表达式 }
关于赋值这里容易理解,不用讲太多
1、变量赋初值 a、常数赋值给变量语法:类型 变量名=常数;
int a=100;b、赋值表达式为变量赋值
语法:类型 变量名=表达式;
int num=a+b*3;2、自动类型转换
就是不同数值类型进行转换
例:单精度类型(float)转换为整数类型(int)
#includeint main() { float a=100.1; //单精度类型 int i=a; //转换为整型 printf("%d",i); //结果为100 }
3、强制类型转换有些编译器遇到这种情况会发出警告
对于发出警告的编译器可使用强制类型进行转换
#includeint main() { char a; //字符型 short b; //短整型 int c; //整型 float d=70001; //单精度型 a=(char)d; b=(short)d; c=(int)d; printf("%cn",a); //结果为 q printf("%dn",b); //结果为 4465 printf("%d",c); //结果为 70001 }
三、算术运算符与算术表达式 1、算术运算符由高级别向低级别转换可能会出现数据丢失
它包括两个单目运算符(正和负)和五个双目运算符(加、减、乘、除、取模)
我一百花完买辣条,求辣条单价(数量自取)
#include3、优先级和结合性int main() { int a,b; //定义辣条的数量和单价 printf("请输入数量:"); scanf("%d",&a); b=100/a; printf("八包辣条需要:%d",b); }
优先级就不多介绍
乘、除、取模的优先级大于加、减
优先级相同就“自左向右”运算
若先加减再乘除可以用括号()
#include四、关系运算符与关系表达式 1、关系运算符int main() { int a=2,b=2,c=2,d=2; a=++a; printf("++a的值:%dn",a); //先+1再赋值 b=b++; printf("++b的值:%dn",b); //先赋值再加+1 c=--c; printf("--c的值:%dn",c); //先-1再赋值 d=d--; printf("d--的值:%dn",d); //先赋值再-1 }
在编程中对于两值的比较,返回的值为真值(true(1))或者假值(false(0))
五、逻辑运算符与逻辑表达式 1、逻辑运算符表达式的值非零为真
零是假值
这里用到if语句,所以不多讲,后面会讲
2、逻辑表达式逻辑与&&和逻辑或||都是双目运算符
a=b&&c; //b和c有一个假就为假 a=b||c; //b和c有一个为真就为真 a=!b; //b为真就是假 b为假就是真 a=!!b; //转换成逻辑值
#include六、位逻辑运算符与为逻辑表达式int main() { int a=0,b=2; //a为假,b为真 printf("a&&b的真假:%dn",a&&b); //逻辑与 结果为 0 printf("a||b的真假:%dn",a||b); //逻辑非 结果为 1 printf("a&&b的真假:%dn",!a&&b); //单目逻辑非 结果为 1 printf("!!a的真假:%d",!!a); //转换成逻辑值 结果为 0 }
位逻辑运算符可实现位的设置、清零取反和取补
C语言中可以用逗号将表达式分隔开
a:运算的优先级大于逗号
所以先计算a+b
b:若先算逗号,则使用括号
算出c-a
#include八、复合赋值运算符int main() { int a,b,c,num; a=1; b=2; c=3; num=0; num=a+b,a+c,c-a; printf("num的值为:%dn",num); //结果为 3 num=(a+b,a+c,c-a); printf("num的值为:%dn",num); //结果为 2 }
它就是一种表达式的缩写,让表达式更简单
num=num+1; num+=1; //这是 num=num+1转变的 num=mum*a; num*=a; //这是 num=mum*a转变的十、实践与练习
1、使用复合运算符计算a+=a*=a/=a-6 (a为整数)
2、定义一个函数,赋值为10,依次按后缀自加——前缀自加——后缀自减——前缀自减,输出每次结果
习题答案:https://dxydjrxl.lanzoui.com/ipct0w86d4d
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)