作业帮 > 综合 > 作业

定义int b[3][4],*q[3]; 下列赋值表达式中是正确的A.q=b b.q=*b c.*q=b+1 D.*q=

来源:学生作业帮 编辑:神马作文网作业帮 分类:综合作业 时间:2024/09/22 17:28:25
定义int b[3][4],*q[3]; 下列赋值表达式中是正确的A.q=b b.q=*b c.*q=b+1 D.*q=&b[1][2]
为什么呢?
A q=b
B q=*b
C *q=b+1
D *q=&b[1][2]
定义int b[3][4],*q[3]; 下列赋值表达式中是正确的A.q=b b.q=*b c.*q=b+1 D.*q=
int *q[3];说明q是一个一维数组,有3个元素,每个元素都是指向int的指针,
q也是一个指向int的指针的指针.
*q代表q[0],表示第一个元素,*q是一个指针,所以这里只有选择D *q=&b[1][2]是正确的.
因为&b[1][2]是一个地址,可以给指针赋值.
再问: 那么我想问*q与*pa代表的意义是不是相同的呢?*pa是指向一个值吧。那么如果相同意义,那么*q不就是q【0】指向b数组的某一个值,而不是地址?
再答: 你这里的pa应该是b,*b是b[0]=&b[0][0],都是二维数组b的第一个元素的地址。 int *q;和 int *q[3]这两者是不同的指针, 前者是一级指针,*p的值是个整型值,后者是二级指针,*p的值是内存地址,对它再次求*,即**p才是个整型值。 所以对于int *q[3];*q是一个地址而不指向b数组的某一个值