在论坛上看到这样一道笔试题:
以下程序输出结果是:
#include <stdio.h>
int main()
{
int cnt = 10;
char *p = "welcome";
while(*p++)
{
cnt++
}
printf("%d/n", cnt);
}
答案:17
我刚开始的理解是先进行++运算,然后取其值,得到结果是16.
其实真正的运算顺序应该是:先取出p的值,再进行++运算。
在论坛上看到这样一道笔试题:
以下程序输出结果是:
#include <stdio.h>
int main()
{
int cnt = 10;
char *p = "welcome";
while(*p++)
{
cnt++
}
printf("%d/n", cnt);
}
答案:17
我刚开始的理解是先进行++运算,然后取其值,得到结果是16.
其实真正的运算顺序应该是:先取出p的值,再进行++运算。