while(*p)和if(*p)是什么意思?
我是初学者.不好意思.*
人气:482 ℃ 时间:2020-03-12 02:25:25
解答
在C语言中,这是字符串处理时常用的技巧.
这样写的程序最后的机器码很精简,充分利用到CPU本身的功能.
*p是当前p指向的字符,在字符串结尾,*p必为0.这时while或if都得出“假”,条件不成立.
不过必须指出,这样写有一个小漏洞,如果p为空指针时将出现非法操作.所以一般是这样写:
if(p&&*p)
while(p&&*p)
由于C对于逻辑操作是短路型的,所以这样就可避免对空指针的操作,程序将更加健康.
推荐
猜你喜欢
- 某商品进价每件8.50元.则每件商品的售价为多少?
- 如果会的话请把答案,步骤写下来,星期2前就要!
- 最好有解析喔
- 在等腰梯形ABCD中,AD平行于BC,对角线AC垂直于BD于点O,AE垂直于BC,DF垂直于BC,AD=4,BC=8,则AE +EF=?
- 如图所示,潜望镜中的两个镜子是互相平行放置的,光线经过镜子反射∠1=∠2,∠3=∠4,请你解释为什么开始进入潜望镜的光线和最后离开潜望镜的光线是平行的.
- 探究热敏电阻的阻值与温度的关系时在测量数据是要注意什么?记录数据时应注意什么?
- 已知二次函数f(x)=ax²-2ax+a+16(a≠0)的两零点为α,β(1)若f(x)
- My mother is fine(就划线部分提问)环线部分是fine