单引号和双引号及逻辑运算符
单引号和双引号
C语言单引号用来表示字符常量,双引号用于表示字符串常量。
“a”表示字符串常量,在内存中占两个字节。“a”+1表示指针运算,指向“a”结束符‘\0’。
把一个32位的数据给char类型数据赋值,char类型数据的值只有后八位。
本质上单引号括起来的一个字符表示整数,双引号括起来的字符代表一个指针。
C编译器接受字符和字符串的比较,可意义是错误的。允许字符串对变量赋值,但是意义是可笑的。
逻辑运算符分析
短路规则:
||从左往右开始计算,当遇到为真的条件时停止计算,整个表达式为真;所有条件为假时表达式为假。
&&从左往右开始计算,当遇到为假的条件事停止计算,整个表达式为假;所有条件为真时表达式才为真。
!是啥? C语言中逻辑符“!”只认得0,只知道见了0就返回1.因此当其作用的值不是0时,其结果为0.
秀一下三目运算符:
int a = 1,b = 2,c = 0,*p = NULL;
p = (a < b ? &a : &b);
*p = 3;
//返回了a的地址。