C语言-运算符(1)

算数运算符

+、 -、 *、 /、%、 ++、 —
其中++、–属于单目运算符,其他的五种属于双目运算符

  1. 除法运算符的两端如果是整数的时候,得到的结果也是整数,当两个操作数无法被整除的时候,会舍弃小数部分,只保留整数,不会四舍五入;如果两个操作数有一个为浮点数,则结果也为浮点数,精度默认为6位精度
  2. 取余运算符的两个操作对象必须是整数
  3. *、/、%的优先级高于+、-
  4. 运算符具有结合性,一种为左结合性,一种为右结合性
    注意:C语言中的单目运算符和三目运算符都遵循右结合性,双目运算符中的=也遵循右结合性,其他运算符遵循左结合性。
  5. ++、–属于增量运算符,是单目运算符,只能在变量中使用,可以作为前缀增量和后缀增量

sizeof

sizeof是C语言中的一个操作符,可以计算数据类型的大小,以字节为单位,sizeof括号里的表达式不会实现运算和处理

int a,b;
char c;
printf("%d",sizeof(a+b)); //4
printf("%d",sizeof(a+c)); //4
int a,b;
char c;
printf("%d",sizeof(a+b));  //4
printf("%d",sizeof(a+c));  //4
int a,b; char c; printf("%d",sizeof(a+b)); //4 printf("%d",sizeof(a+c)); //4

sizeof运算符中的表达式不会被计算,但是如果出现多个数据类型的大小计算,会涉及到基本数据类型转换
数据类型转换分为两种一种是自动转换,一种是强制类型转换
自动类型转换:是编译器自动进行的转换,不需要人为干预
强制类型转换:人为进行的转换
无论是强制类型转换还是自动类型转换,都是临时性的,转换结果会保存在临时的内存空间,不改变数据本来的类型或者值

位操作运算符

C语言中有6种运算符,、&、^、|、<<、>>,其中是单目运算符

  1. ~按位取反,对于二进制来说,是将二进制数按位取反,例如 ~01100110 = 10011001
  2. &按位与,对于二进制来说,是将两个二进制数按位与,同为1则为1,否则为0,例如:10001111&11001010=10001010
  3. |按位或,对于二进制来说,是将两个二进制数按位或,同为0则为0,否则为1,例如:10001111|11001010=11001111
  4. ^按位异或,对于二进制来说,是将两个二进制数按位异或,相同为0,不同为1,例如:10001111 ^ 11001010=01000101
  5. <<按位左移,高位舍弃,低位补0 01111010<<3=11010000
  6. 按位右移,低位舍弃,高位补0 01111010 >>3 = 00001111

来源链接:https://www.cnblogs.com/lradian/p/18821042

© 版权声明
THE END
支持一下吧
点赞7 分享
评论 抢沙发
头像
请文明发言!
提交
头像

昵称

取消
昵称表情代码快捷回复

    暂无评论内容