if(ret_val)是怎么判断的,rat_val不是首地址吗
原型 char * fgets(char * s, int n,FILE *stream);
参数:
s: 字符型指针,指向存储读入数据的缓冲区的地址。
n: 从流中读入n-1个字符
stream : 指向读取的流,stdin表示标准输入,就是用户在黑框里输入
返回值:
1. 当n<=0 时返回NULL,即空指针。
2. 当n=1 时,返回空串"".
3. 如果读入成功,则返回缓冲区的地址。
4. 如果读入错误或遇到文件结尾(EOF),则返回NULL.
通过if判断返回值ret_val来判断是否读入数据正确或者遇到文件结尾。
其实 这里的两个语句是一样的,都实现的是同一个效果;
NULL == 0; 虽然判断一个是否为空,写为:指针变量==NULL,但是其效果等效于==0;
if(ret_val) /* if(ret_val) == if(ret_val != NULL) */