C语言符号

1.注释符号

编译器在编译时删除注释,但是以空格替换注释。


2.接续符

编译器会自动将\去除,将下一行提到后方。

可用于宏定义:

 


3.||&&

||:从左往右运算当遇到条件为真,则停止运算(后续计算将不执行);

&&:从左往右运算当遇到条件为假,则停止运算(后续计算将不执行);


4.!

!:只认0;(!0 -> 1   !-100 -> 0


5.(a?b:c)

a为真,返回b;否则返回c值;  *a<b?&a,&b


6.<<>>

<<:高位丢弃,低位补0

>>:高位补符号位,低位丢弃。

^: 3^3=0


7.++--

1)  int i = 3;  (++i)+(++i)+(++i) --> 18 (6+6+6)   or  16  ((5+5)+6)  编译器决定

2)  int i = 3;  k = (++i,i++,i+10); 逗号-->从左至右运算,最后一个表达式的值就是结果(4,5,5+10)  k=15

3)  贪心法:编译器从左至右一个一个尽可能多的读入字符,读到字符不可能与已读字符组成合法字符为止;

++i+++i+++i;  编译器先读到 ++i + ?  --> ++i + +  编译器不读了先运算  1++ (就错了);

这和a = i/*p;  --->编译器会认为  /* 为注释;(可以改为:a = i / *p  ->/*之间加空格)

 


8.优先级和类型转换

 


9.隐式类型转换

1)算术运算式中,低类型转换为高类型

2)赋值表达式中,表达式的值转换为左边变量的类型

3)函数调用时,实参转换为形参的类型

4)函数返回值,return表达式转换为返回值类型

 

int i = -2; unsigned int j = 1;

if((i+j)>0)   --->i+j  结果转换为unsigned int类型

print(“%d\n”,i+j);   ---->%d代表int 类型;  i+j unsigned int  

 (printf(“%0X\n”,i+j))   打印0x十六进制--->FFFFFFFF-1.

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值