1. 程式人生 > >關於int *ptr=(int *)(&a+1)問題的探討

關於int *ptr=(int *)(&a+1)問題的探討

解析:
A. a+sizeof(int) 
// 不正確, 在32位機器上相當於指標運算 a + 4
B. &a[0]+1 
// 正確,陣列首元素地址加1,根據指標運算就是a[1]的地址
C. (int*)&a+1 
// 正確,陣列地址被強制型別轉換為int*,然後加1,這樣和B表示的一個意思
D. (int*)((char*)&a+sizeof(int))
// 正確,資料地址先被轉換為char*,然後加4,根據指標運算公式,向前移動4 * sizeof(char),之後被轉換為int*,顯然是a[1]的地址