为什么还有问号,不应该没出现问号吗

img


while语句不是先判断再输出,为什么问号还会打印出来,当输入字符不等于问号是输出,为什么打印多个问号时只有第一个打印出来了

这题考核的知识点是函数(方法)的调用和返回值的理解。
char putchar(char c)应该是putchar这个函数的较完整的形式,下面我们简单分析一下。
该函数的函数名是putchar,
功能简单理解来说是将入参c输出到控制台,
入参是一个char型
返回值是实际输出的字符char
分析之后你应该能明白了,循环接收键盘输入然后原样输出,直到遇到第一个?字符,
将该?字符输出到控制台后,putchar函数返回?,然后判断其!='?'为false,跳出while循环,程序结束

明明是先输出再判断好吗

你用putchar函数输出字符,用putchar的返回值与问号作比较,那就是先打印后比较。输入多个问号走一下,第一个问号输出后,putchar就会返回问号的asllc码,while会将这个asllc码与问号的asllc码作比较,结果是相等的,不符合循环条件,所以退出循环。故只输出第一个问号。