#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