
c语言中s[i]!=''&&(s[i+1]==''||s[i+1]=='\0')是什么意思?
这是两个条件:
第i(如果i从1开始)个非空格字符后跟一个空格。
或者第i+1个字符是字符串结束标记。
这条代码的意思是这两个条件之一成立即可。
知识延展:
&&:逻辑与,前后条件同时满足表达式为真。
||:逻辑或,前后条件只要有一个满足表达式为真。
&:按位与。
| :按位或。
区别:
&&和||是逻辑运算,&与|是位运算。
“&&”跟“|”没有关系,在用“||”的地方一般也可以用|代替,但是用“|”的地方不能用“||”代替。
复合赋值运算符共 10种
+= 加赋值
-= 减赋值
*= 乘赋值
/= 除赋值
%= 求余赋值
&= 按位与赋值
| = 按位或赋值
^= 按位异或赋值
<<= 左移位赋值
>>= 右移位赋值
构成复合赋值表达式的一般形式:
变量 双目运算符=表达式
它等效于
变量=变量 运算符 表达式
s+=i,等价于s=s+i,使用加赋值
不但可以让代码更加简洁,而且能提高程序的运行效,提高程序的运行速度
*(s+i)就是取s上第i个元素的值,等同于s[i]。
'\0'为转义字符,其ascii码值为0,在C语言中,是约定的字符串结束符。
!=代表逻辑不等于运算,当!=两侧值相等时,值为假,否则值为真。
于是,这个表达式就是判断s上第i个元素是否为字符串结束符,如果是则表达式为假,否则表达式为真。