#include <stdio.h>
void fun(char**);
int main()
{
char *argv[] = {"ab", "cd", "ef", "gh"};
fun(argv);
return 0;
}
void fun(char **p)
{
char *t;
t = (p+= sizeof(int))[-1];
printf("%s\n", t);
}
有人可以解釋我指派t =(p + = sizeof(int))[ - 1]; ..給出的ANS是CD ..有人可以解釋這個任務,雙指針和輸出
如果這是從某種類型的教育課程的實際分配和答案表述爲'cd',我真誠的建議是跑了一英里。 – NPE 2015-02-07 21:24:51
p增加int大小,然後通過選擇右邊的索引來解除引用。這在技術上是未定義的行爲,因爲程序不能真正做負數組索引。 – 2015-02-07 21:25:33
當然你可以使用負指數。只要在負指數結果中添加一個有效的指針即可。 – gnasher729 2015-02-07 21:26:26