若有以下定义和语句,则对a数组元素非法引用的是:int a[2][3],(*pt)[3];pt=a;A.pt[0][0] B.*(pt+1)[2] C.*(pt[1]+2) D.*(a[0]+2)

来源:学生作业帮助网 编辑:作业帮 时间:2024/04/30 00:11:21
若有以下定义和语句,则对a数组元素非法引用的是:int a[2][3],(*pt)[3];pt=a;A.pt[0][0] B.*(pt+1)[2] C.*(pt[1]+2) D.*(a[0]+2)

若有以下定义和语句,则对a数组元素非法引用的是:int a[2][3],(*pt)[3];pt=a;A.pt[0][0] B.*(pt+1)[2] C.*(pt[1]+2) D.*(a[0]+2)
若有以下定义和语句,则对a数组元素非法引用的是:
int a[2][3],(*pt)[3];
pt=a;
A.pt[0][0] B.*(pt+1)[2] C.*(pt[1]+2) D.*(a[0]+2)

若有以下定义和语句,则对a数组元素非法引用的是:int a[2][3],(*pt)[3];pt=a;A.pt[0][0] B.*(pt+1)[2] C.*(pt[1]+2) D.*(a[0]+2)
指针变量 pt 指向 a 数组!
*pt 相当于 a [0];
*(pt + 1) 相当于 a[ 1];
*(pt + 1)[2] 相当于 *(pt + 3);
* (pt + 3) 等价于 a[3];
显然 a[3] 不存在!所以 选项 B 非法!