C语言 若有定义语句:int a[2][3],*p[3];则以下语句中正确的是()A.p=a;B.p[0]=a;C.p[
来源:学生作业帮 编辑:搜搜做题作业网作业帮 分类:综合作业 时间:2024/06/23 05:05:45
C语言
若有定义语句:int a[2][3],*p[3];则以下语句中正确的是()
A.p=a;B.p[0]=a;
C.p[0]=&a[1][2]; D.p[1]=&a;
但是我在其他地方看到似乎A这种表达也没有错误,还有*p[3]是不是等价于*(p[3])?
若有定义语句:int a[2][3],*p[3];则以下语句中正确的是()
A.p=a;B.p[0]=a;
C.p[0]=&a[1][2]; D.p[1]=&a;
但是我在其他地方看到似乎A这种表达也没有错误,还有*p[3]是不是等价于*(p[3])?
int a[2][3], *p[3];
分析:
对于a来说,毫无疑问,a是一个二维数组,a的值指向int类型的起始地址.
对于p,首先p先与'[ ]'结合 p[3],表示p是一个数组,p再与'*'结合成' *p[3] ',表示p数组里面存放的时指针变量,最后与int类型结合成' int *p[3] ',表示数组存放的时指向int类型的指针.
p[0]=&a[1][2];
所以p[0]的值是一个指向int类型的指针.
而a[1][2]的值是一个int类型,再加上'&'(取地址符)得到的就也是一个指向int类型的指针了.
所以p[0]=&a[1][2];成立.
建议ZL看看 《让你不再害怕指针》
回答完毕.
分析:
对于a来说,毫无疑问,a是一个二维数组,a的值指向int类型的起始地址.
对于p,首先p先与'[ ]'结合 p[3],表示p是一个数组,p再与'*'结合成' *p[3] ',表示p数组里面存放的时指针变量,最后与int类型结合成' int *p[3] ',表示数组存放的时指向int类型的指针.
p[0]=&a[1][2];
所以p[0]的值是一个指向int类型的指针.
而a[1][2]的值是一个int类型,再加上'&'(取地址符)得到的就也是一个指向int类型的指针了.
所以p[0]=&a[1][2];成立.
建议ZL看看 《让你不再害怕指针》
回答完毕.
C语言 若有定义语句:int a[2][3],*p[3];则以下语句中正确的是()A.p=a;B.p[0]=a;C.p[
若有定义语句:int a[2][3],*p[3],则以下语句正确的是(C)
若有以下说明和语句,int c[5],*p ;p=c ;能正确引用c数组元素的是?A) &p B)*(p+3) C) c
若有定义语句:char s[3][10],(*k)[3],*p;则以下赋值语句正确的是:A、p=s; B、p=k; C、
若有定义语句“inta【2】【3】,*p【3】;”,则下语句中正确的是 A p=a B p[0]=a C p[0]=&a
设有定义语句:int =0,*p=&你,*q;以下选项正确的是?a;p=1 b:p=q c:*p=*q
C语言……….若有定义语句:int a[4]={1,3,5,7},*p;p=a;则*(p+1)的值是
若有定义语句int a[5], *p=a;,则对a数组元素的正确引用是什么 A *&a[5] B *a+2 C *(p+
定义语句:char s[3][10],(*k)[3],*p;,则以下赋值语句正确的为啥是 A)p=s; B)p=k; C
若有以下定义,则对a数组元素的正确引用是( ).int a[5],*p=a; A.*&a[5] B.a+2 C.*(p+
.若有以下定义和语句:int a[4]={0,1,2,3},*p; p=&a[2]; 则++(*p)的值是___3__.
若有定义语句:int a[2][3],*p[3];则下列语句正确的是