日期:2014-05-16  浏览次数:20605 次

c++ 一个简单的问题。。。
刚接触c++,   总看到如下的一个开始语句,  
while(memset(buf,0,sizeof(buf)),   fgets   (buf,   1024,   fp))  
。。。

while(     ,     )   怎么while里面有2个参数?

------解决方案--------------------
while(memset(buf,0,sizeof(buf)), fgets (buf, 1024, fp))
相当于
while(memset(buf,0,sizeof(buf))&&fgets (buf, 1024, fp))

------解决方案--------------------
逗号表达式
按从左到右的顺序计算各个子表达式,整个表达式的值是最后一个子表达式的值
所以
while(memset(buf,0,sizeof(buf)), fgets(buf,1024,fp))
// ...
意思就是每次循环都将buf数组的内容赋值成0,然后调用fgets()函数,循环结束条件是fgets()返回0
------解决方案--------------------
基本的逗号表达式...取,后面的结果.
------解决方案--------------------
逗号表达式, 顺序执行, 最后的一个作为返回值.