#include <stdio.h>
void f(char**);
int main() {
char *argv[] = { "ab", "cd", "ef", "gh", "ij", "kl" };
f(argv);
return 0;
}
void f(char **p) {
char *t;
t = (p += sizeof(int))[-1];
printf("%s\n", t);
}
这是我有的代码,问题是要求输出。我想知道为什么输出是gh。我认为sizeof(int)将等于char中的元素数量,以“t”语句为单位,它会使得它为6,然后减1。然后我打印sizeof(int),它给了我4.我只是困惑为什么sizeof(int)是4而不是6. 在此先感谢。为什么这个代码的输出是gh?
'sizeof(int)将等于char中元素的个数'你怎么可能得出这个结论? – John3136
嘿,猜猜是什么'argc'! – paddy
我的意思是说,如果它只是一个字符串说“字符串”它将是该字符串的字节大小?然后我进一步寻找和纠正我,如果我错了,但它会是4,因为它计算指向字符的大小,这将是4字节? – thrugs