#include <stdio.h>
#include <stdlib.h>
int main(void) {
int a[] = {4, 0, 2, -5};
int *t;
t = &a + sizeof(int);
printf("t = %d\n", *t);
system("pause");
return 0;
}
出來時"t = 0"
但是我加入了
#include <stdio.h>
#include <stdlib.h>
int main(void) {
int i;
int a[] = {4, 0, 2, -5};
int *t;
printf("element\t|address\t|value\n");
printf("----------------------------\n");
for(i = 0; i < (sizeof(a) / sizeof(int)); i++) {
printf("a[%d]\t|%p\t|%d\n", i, &a[i], a[i]);
}
t = &a + sizeof(int);
printf("t = %p\n", t);
system("pause");
return 0;
}
&a[0] = 0022FF20
那 t 應該要等於 0022FF24 吧?
可是為甚麼上面跑出來沒問題
下面卻變成 0022FF60 呢?