C语言:while(printf("x"))内的表达式为什么与✀0✀等价,如何解释?

2024年11月27日 18:30
有3个网友回答
网友(1):

楼主你好!printf()函数返回值为整型。若成功则返回输出的字符数,输出出错则返回负值。这里题目返回整数1。由于'0'的ASCII码为48,属于非0!while()函数括号里的非0相当于TRUE,0相当于FALSE。所以只要是括号里为非零,都是TRUE!
答案是B

网友(2):

printf()函数的返回值为所输出的字符的个数(此处为1);
而字符‘0’的ASCLL 码非 0 ,即相当与1。所以等价。

网友(3):

#include

int main(void){
int pt=printf("x");

while(pt==1){
pt=0;
printf("\nprintf 返回值是1\n");
}
return 0;
}

//返回1表示printf("x");执行了。