若int*p[3],a[2][3];则p[0]=&a[1][2]这个赋值语句为何不对呢?
来源:学生作业帮 编辑:作业帮 分类:综合作业 时间:2024/09/21 06:27:21
若int*p[3],a[2][3];则p[0]=&a[1][2]这个赋值语句为何不对呢?
int *p[3];
int a[2][3];
则p是一个数组,数组元素是指针,该指针指向int类型的变量
所以p[0]即 *(p + 0)是数组p的第0个元素,p[0]的类型为指向int类型的变量.
a是一个数组,数组的元素是含3个int类型元素的数组.
所以a[1]是数组的第一个元素,a[1]的类型为含3个int类型元素的数组,a[1][2]是a[1]的第2个元素,a[1][2]的类型是int变量,&a[1][2]的类型就是指向int类型变量的const指针
所以p[0]=&a[1][2]是在把一个指向int变量的const指针赋值给int类型的指针变量.在C语言中,这是合法的.
不只是谁告诉楼主这个赋值语句不对?
int a[2][3];
则p是一个数组,数组元素是指针,该指针指向int类型的变量
所以p[0]即 *(p + 0)是数组p的第0个元素,p[0]的类型为指向int类型的变量.
a是一个数组,数组的元素是含3个int类型元素的数组.
所以a[1]是数组的第一个元素,a[1]的类型为含3个int类型元素的数组,a[1][2]是a[1]的第2个元素,a[1][2]的类型是int变量,&a[1][2]的类型就是指向int类型变量的const指针
所以p[0]=&a[1][2]是在把一个指向int变量的const指针赋值给int类型的指针变量.在C语言中,这是合法的.
不只是谁告诉楼主这个赋值语句不对?
设有定义:int n=0,*p=&n,**q=&p,则下列赋值语句哪个是正确的?A.p=1;B.*q=2;C.q=p;D
设有定义:int n=0,*p=&n,**q=&p;则一下选项中,正确的赋值语句是()A,P=1B.*q=2 C.q=p
.若有以下定义和语句:int a[4]={0,1,2,3},*p; p=&a[2]; 则++(*p)的值是___3__.
7.设有定义:int n=0,*p=&n,**q=&p;则以下选项中,正确的赋值语句是( ).A) p=1; B) *q
若有说明int n=2,*p=&n,*q=p;,则以下非法的赋值语句是 A)p=q B)p=n C)*p=*q D)n=
若有以下定义和语句:int a[4]={1,3,5,7},*p; p=&a[2]; 则*--p的值是【 】
若有以下定义和语句:int a[5]={1,3,5,7,9},*p; p=&a[2]; 则++(*p)的值是__6__.
C语言 若有定义语句:int a[2][3],*p[3];则以下语句中正确的是()A.p=a;B.p[0]=a;C.p[
设有定义:int a[2][2]={1,2,3,4},(*p)[2];,则在语句p=a;p++;后,**p的值为(3)
设有定义:int a[2][2]={1,2,3,4},(*p)[2];,则在语句p=a;p++;后,**p的值为()
9-6已有定义:int i,a[10],*p;,则合法的赋值语句是 A.p=100; B.p=a[5]; C.p=a[2
若有定义语句:int a[2][3],*p[3];则下列语句正确的是