爲什麼下面這段增量復引用指針的
char *arr[] = {"C", "C++", "Java", "VBA"};
char *(*ptr)[4] = &arr;
printf("%s\n", ++(*ptr)[2]);
printf("%s\n", ++(*ptr)[2]);
printf("%s\n", ++(*ptr)[2]);
輸出
AVA
VA
一個
我想不通原因和位置信息保留被解引用的ptr
。調試器告訴我(*ptr)[2]
的確增加了,ptr
保持不變,但我不知道如何解釋它。
'arr [2]'是什麼增加。 – Cornstalks
您能否在聲明中添加更多的專利和'*'以使您的代碼更加複雜?爲什麼不'char ** ptr = arr;'在'printf's中使用更簡單的表達式?你想要什麼?預期的結果是什麼?調試器顯示您的陣列是什麼? – Olaf