打开APP
userphoto
未登录

开通VIP,畅享免费电子书等14项超值服

开通VIP
UC头条:[初阶C语言]操作符详解总结(万字)
userphoto

2023.06.15 山西

关注

5.赋值操作符

赋值操作符是一个很棒的操作符,他可以让你得到一个你之前不满意的值。也就是你可以给自己重新赋值。

复合赋值符

+=

-=

*=

/=

%=

右>>=

左<<=

&=

|=

^=

这些运算符都可以写成复合的效果。

intmain{inta=3;a=a+3;a+=3;a=a>>3;a>>=3;a=a^5;a^=5;return0;}

6.单目操作符

6.1单目操作符介绍

逻辑反操作!

负值-

正值+

取地址&

sizeof操作数的类型长度(以字节为单位)

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

–前置、后置–

++前置、后置++

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

(类型)强制类型转换*

intmain{intflag=5;if(flag)//flag为真做什么{}if(!flag)//flag为假做什么{}return0;}intmain{inta=10;int*p=&a;//&取地址操作符*p=20;//解引用操作符(间接访问操作符)//intarr[10];//&arr;//取出数组的地址return0;}intmain{inta=10;printf('%d\n',sizeofa);printf('%d\n',sizeof(a));printf('%d\n',sizeof(int));intarr[10]={0};printf('%d\n',sizeof(arr));printf('%d\n',sizeof(arr[0]));intsz=sizeof(arr)/sizeof(arr[0]);printf('%d\n',sz);return0;}intmain{inta=3;a=10;a+3=15;//errreturn0;}intmain{inta=0;//00000000000000000000000000000000//11111111111111111111111111111111//11111111111111111111111111111110//10000000000000000000000000000001//printf('%d\n',~a);return0;}intmain{inta=3;//00000000000000000000000000000011//00000000000000000000000000001000a|=(1<<3);printf('%d\n',a);//00000000000000000000000000001011//11111111111111111111111111110111a&=(~(1<<3));printf('%d\n',a);return0;}intmain{inta=10;//intb=--a;//前置--,先--,后使用intb=a--;//后置--,先使用,后--printf('a=%db=%d\n',a,b);//printf('%d\n',++a);//前置++,先++,后使用//printf('%d\n',a);//intb=a++;//后置++,先使用,再++//intb=a,a=a+1;//printf('a=%db=%d\n',a,b);return0;}问题代码intmain{inta=1;intb=(++a)+(++a)+(++a);printf('%d\n',b);return0;}intmain{floata=3.14f;intb=(int)a;//intb=int(a);//errreturn0;}

6.2sizeof和数组

voidtest1(intarr[]){printf('%d\n',sizeof(arr));//(2)}voidtest2(charch[]){printf('%d\n',sizeof(ch));//(4)}intmain{intarr[10]={0};charch[10]={0};printf('%d\n',sizeof(arr));//(1)printf('%d\n',sizeof(ch));//(3)test1(arr);test2(ch);return0;}

问:

(1)、(2)两个地方分别输出多少?40,4(该环境为X86,X64结果为8)

(3)、(4)两个地方分别输出多少?10,4(该环境为X86,X64结果为8)

7.关系操作符

关系操作符

1.>

2.=

3.<

4.<=

5.!=用于测试“不相等”

6.==用于测试“相等”

这些关系运算符比较简单,但要注意在编程的过程中==和=不小心写错,导致的错误。

8.逻辑操作符

逻辑操作符有哪些:

&&逻辑与

||逻辑或

区分逻辑与和按位与

区分逻辑或和按位或

1&2----->0

1&&2---->1

1|2----->3

1||2---->1

intmain{inta=3&&0;//0//printf('%d\n',a);inta=2||0;//1printf('%d\n',a);return0;}

逻辑与和或的特点:

&&操作符左边为假,右边不再计算

||操作符左边为真,右边不再计算

9.条件操作符

exp1?exp2:exp3

9.1练习1

1.if(a>5)b=3;elseb=-3;

转换成条件表达式,是什么样?

intmain{inta=0;intb=0;scanf('%d',&a);b=((a>5)?3:-3);printf('%d\n',b);return0;}

9.2练习2

使用条件表达式实现找两个数中较大值

intmain{inta=0;intb=0;scanf('%d%d',&a,&b);intm=(a>b?a:b);printf('%d\n',m);return0;

本站仅提供存储服务,所有内容均由用户发布,如发现有害或侵权内容,请点击举报
打开APP,阅读全文并永久保存 查看更多类似文章
猜你喜欢
类似文章
C语言指针变量作为函数参数
C语言提高笔记(干货)
第6章 指针
C/C++编程知识:运算符(二)丨关系运算符 & 逻辑运算符
(6)选择结构例题评讲
编程语言操作符小结
更多类似文章 >>
生活服务
热点新闻
分享 收藏 导长图 关注 下载文章
绑定账号成功
后续可登录账号畅享VIP特权!
如果VIP功能使用有故障,
可点击这里联系客服!

联系客服