为什么下面这段增量复引用指针的
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