設有以下語句,則()不是對a數組元素的正確引用,其中0<=i<10 - 搜
四個選項中,D不是對a數組元素的正確引用。
int a[10]={0,1,2,3,4,5,6,7,8,9}, *p=a;
相當于
int a[10]={0,1,2,3,4,5,6,7,8,9};
int *p;//定義p為執行int的指針變量
p = a; //a為數組名,代表數組的起始地址
A、p的值是一個地址(數組a的起始地址),所以p-a = 0,那么a[p-a]相當于a[0]
B、a[i]是數組的一個元素,&a[i]是數組的元素的地址,*(&a[i])相當于a[i]
C、p[i] <=> *(p+i), p+i的結果是一個地址,*(p+i)就是對數組中下標為i的元素的訪問
D、a+i的值是一個地址,*(a+i)<=>a[i],也就是說表達式*(a+i)的值是一個整數,在表達式*(*(a+i))中,最左邊的*,相當于是對一個整數進行解引用,所以是非法的。
轉載請注明出處華閱文章網 » 沒有定義詞句則數組元素a