#include<stdio.h>
int main()
{
char *s[] = { "knowledge","is","power"};
char **p;
p = s;
printf("%s ", ++*p);
printf("%s ", *p++);
printf("%s ", ++*p);
return 0;
}
輸出:字符串指針
nowledge nowledge小號
請解釋輸出從2 printf()
statement.I特別輸出認爲,因爲++
和*
具有相同的優先級,因此在*p++
p
應先遞增,然後使用*
(一元運算符從右到左的關聯性)。
作爲參考:在情況下,它不明顯,**這代碼改變S [1]'**如果陣列正在傳遞給你'S [0]'和'那會是一個討厭的副作用;你會讓這些指針基本上不可用。這就是爲什麼我討厭把解引用和增量結合起來的原因之一 - 做錯事很容易。 :P – cHao
這真的是功課嗎?他們沒有更好的東西供你學習?或者這是否意味着一個不好的例子,例如,你學習*而不是*做這樣的事情? –