首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > C语言 >

请看一段简单程序 关于(if(p)*p=0;)解决方法

2012-03-13 
请看一段简单程序关于(if(p)*p0)//请教://其中if(p)*p0怎么理解?//p可作为逻辑表达式?intReadDat(void

请看一段简单程序 关于(if(p)*p=0;)
//请教:
//其中     if(p)*p=0;     怎么理解?  
//p   可作为逻辑表达式?

int   ReadDat(void)
{
      FILE   *fp;
      int   i=0;
      char   *p;
      if((fp=fopen( "IN.DAT ", "r "))==NULL)   return   1;
      while(fegts(xx[i],80,fp)!=NULL)
      {
            p=strchar(xx[i], '\n ');
            if(p)*p=0;
            i++;
      }
      maxline=i;
      fclose(fp);
      return   0;
}



[解决办法]
p 可作为逻辑表达式?

================
if(p)等价与if(p != NULL)
[解决办法]
strchr(不是strchar)返回的是指针(char *),即指向串中 "\n "的位置,
if (p) *p=0; 就是说将串中的第一个 "\n "替换为 "\0 "。
if(p) 的含义为:指针p不是空指针则条件成立,p为空置针则条件不成立。
if (exp) 中,exp 不一定非得是严格的逻辑表达式,编译器将隐式地转换为逻辑表达式,
比如上面的 if (p) 其实就是 if (p != NULL)。
[解决办法]
if(可以是变量)
如果是指针的话 意思是 if(p != NULL)
如果是int类型 if(a) 则 a> 0为真
[解决办法]
to: luya123()
如果是int类型 if(a) 则 a> 0为真

不对,应该是 if(a) 相当于 if( a != 0 )
[解决办法]
逻辑有错误,应该是:
if(p)

{ *p=0;
i++;
}

[解决办法]
(if(p)*p=0;)

if(p) 等价于 if(p=!0)
对于指针,也等价于if(p=!NULL)
[解决办法]
while(fegts(xx[i],80,fp)!=NULL)
{
p=strchar(xx[i], '\n ');
if(p)*p=0;
i++;
}

strchar 是自定义的函数么?
似乎这样可能也是对的 ~
看楼主自己需要什么样的结果吧~

热点排行
Bad Request.