这个地方要求一个能表示 t 的地址的表达式
int main(void)
{
int k, t[3][2], *pt[3];
for ( k = 0; k < 3; k++) {
pt[k] = t[k];
}
return 0;
}
A.
&t[3][2]
B.
*pt[0]
C.
*(pt+1)
D.
&pt[2]
说实话,我觉得都是错的
这个地方要求一个能表示 t 的地址的表达式
int main(void)
{
int k, t[3][2], *pt[3];
for ( k = 0; k < 3; k++) {
pt[k] = t[k];
}
return 0;
}
A.
&t[3][2]
B.
*pt[0]
C.
*(pt+1)
D.
&pt[2]
说实话,我觉得都是错的
A,这都越界了
B,pt[0]里存的是t[0]的地址,解地址一次变成t[0][0]的值,不是地址
C也是错的,pt是指针数组的地址,它+1变野指针了
D也不对,pt[2]本身已经是t[2]的地址了,它再取地址又出野指针了
-=-=-=
另,如果不深究每个星号和地址符到底干什么的,光看下标就能排除ACD了,t的地址好歹得是t[0][0]的地址,不能是t[3][2]的地址吧