while(*p)和if(*p)是什么意思?
题目
while(*p)和if(*p)是什么意思?
我是初学者.不好意思.*
答案
在C语言中,这是字符串处理时常用的技巧.
这样写的程序最后的机器码很精简,充分利用到CPU本身的功能.
*p是当前p指向的字符,在字符串结尾,*p必为0.这时while或if都得出“假”,条件不成立.
不过必须指出,这样写有一个小漏洞,如果p为空指针时将出现非法操作.所以一般是这样写:
if(p&&*p)
while(p&&*p)
由于C对于逻辑操作是短路型的,所以这样就可避免对空指针的操作,程序将更加健康.
举一反三
已知函数f(x)=x,g(x)=alnx,a∈R.若曲线y=f(x)与曲线y=g(x)相交,且在交点处有相同的切线,求a的值和该切线方程.
我想写一篇关于奥巴马的演讲的文章,写哪一篇好呢?为什么好
最新试题
热门考点
- 已知人的血型为o,a,b,ab的概率分别是0.4 0.3 0.2 0.1 ,现任选四人,那么四人血型完
- what can we do to protece the environment 这篇作文怎么写?80词就行 用英语
- 有5箱苹果,每箱质量相同,从每箱取出3千克苹果,那么5个箱子里剩下的苹果质量相当于原来4箱的质量,问每个箱
- 密闭容器恒容吗
- 为什么相见不如怀念?
- 你会中国功夫吗?用英语怎么说
- 已知1是关于X一元二次方程(m-1)X平方+X+1=0的一个根,求m的值是
- 一个等腰直角三角形的底长24cm,它的面积是_cm2.
- 文具商店运进一批练习本,其中稿纸本共有100本,占这批练习本的5分之2,这批练习本一共有多少本?
- 二次型方程表示何种二次曲面