在論壇上看到這樣一道筆試題:
以下程序輸出結果是:
#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的值,再進行++運算。