int p下面等价的语句是,int *p[4];下面等价的语句是

2020-11-22 13:49:16 字数 3794 阅读 3919

1楼:匿名用户

int *p[4]是一维一级指针数组,p是指针数组名,这个数组有4个元素,每个元素都是int行指针

int p[4]是一维数组,p是数组名,这个数组有4个int型元素int **p是二级指针,即指向一级指针的指针int *(p[4])....我也不懂

int (*p)[4]是指向一维数组的指针,即指向类型为int 的具有4个元素的数组

2楼:匿名用户

a。int p[4];

有定义语句:int *p[4];以下与此语句等价的是a)int p[4]; b)int **p;c)int *(p[4]); d)int (*p)[4];

3楼:匿名用户

int *p[4]; p是个数组,有四个元素空间,每个元素都是一个int *指针

a)int p[4]; 这个明显不对

b) int **p; 这个不会是等价的,因为这里的p是个二维指针

c) int *(p[4]); 这个是等价的!!答案就是它了!!

d) int (*p)[4]; //这里的p是个指针,指向一个有四个int类型数据的数组

与int *p[4];等价的是a)int p[4] ;b)int **p; c)int *(p「4」) ;d)int (*p)「4 为什么?

4楼:**页

a 错 相当于4个int

b 错 相当于指向int*的指针

c 对

d 错 相当于指向四个int的数组的指针。

原因:int * p[4] 中[4] 比* 更优先结合p,所以首先,它是数组,长度为4,接着,数组的元素类型是int*。

也就是能存储四个int*类型的数组。

int(*p)[4] int*p[4]

5楼:匿名用户

楼主你好。首先学习指针是有好多概念容易混淆。下面我来帮你区别一下:

1、int(*p)[4];------ptr为指向含4个元素的一维整形数组的指针变量(是指针)

2、int *p[4];-------定义指针数组p,它由4个指向整型数据的指针元素组成(是数组)

3、int(*)[4];--------实际上可以看作是一种数据类型。也就是第一个(int(*p)[4];)中定义的p的数据类型

其实你要看这种到底是什么,就是要看他最先和谁结合。 比如1中p先与*结合,那就说明p本质是一个指针;而2中p先与后面的[4]结合,说明他本质是一个数组。再慢慢理解。

希望能帮到你。如有疑问可以再问我。

6楼:竹竹风子

当然不是,int(*p)[4]表示p是一个指针变量,它指向包含4个整型元素的一维数组

而int *p[4],由于方括号运算级别高,因此p先与[4]结合,此时p[4]定义成数组形式,再与前面的 * 结合,这样一来就是一个存放指针的数组了。

7楼:冷漠鉴客

int(*p)[4] 是一个指向4个整形数数组的指针

int*p[4]是一个有4个指针的数组,该指针是一个指向一个整型数的。

这个在c语言里是难点,初学时很容易混淆,不过你先找变量,然后先往右看,如果遇到圆括号(一般是圆括号,而且是右半边,如果是左半边就说明它是一个函数)就往左,比如第一个p先往右,然后遇到括号,所以往左看到*,证明他是一个指针,是一个指向整形数数组的指针。第二个,p向右,是一个数组,是一个有4个指针的数组。

8楼:匿名用户

int(*p)[4];------p为指针变量指向含4个元素的一维整形数组(p是一个指针)

int *p[4];-------定义指针数组p,该数组中有4个整形指针变量,(p是指针数组,其中有4个指针)

设int a[]={1,2,3,4},b,*p=a;,与b=*p++;等价的语句是

9楼:匿名用户

应该选择b,这个涉及到符号优先级的问题,++符号的优先级要比*高,所以应该是*(p++),

不过,b最终等于1,因为,++在p的后面所以要先远算完了这个式子,然后p再++;

10楼:匿名用户

b。后置++的优先级高于一元*。

11楼:匿名用户

选【b】

后自增是在表达式结束后再自加的,加不加括号都一样。。

12楼:匿名用户

选b ++不管扩不扩起来都是后执行。

以下与 int *q[5]; 等价的定义语句是 (a) int q[5] ; (b) int *q ; (c) int *(q[5]) ; (d) int (*q)[5] ;

13楼:嘘

int* q[5];是一个存放指针

的数组(通常叫指针数组)

a是一个存放int型数组;

b是一个int型指针;

c是一个存放指针的数组;

d一个指向指针数组的指针,是一个变量,而不是数组。

故选c。

数组指针是指向数组地址的指针,其本质为指针;指针数组是数组元素为指针的数组(例如 int *p[3],定义了p[0],p[1],p[2]三个指针),其本质为数组。数组指针的使用在某些情况下与指针数组很相似,要注意区别。

14楼:倒霉熊

cab显然不对,这个没有什么好解释的。

int *q[5] 表示五个元素都是int 类型的指针而 int (*q)[5] 表示每个元素都是指向一个拥有5个int元素的指针

所以d不对

c只是换了一种写法而已。

"若有说明: int i,j=7, *p=&i;, 则与i=j; 等价的语句是()."

15楼:匿名用户

等价于i=&j。

i=j的意思是将j的值赋予i,即i和j的值相等。

在选项中,i= *p的意思是将指针p所指向的值赋予i;*p=*&j的意识是将j的值赋予指针p所指向的值,而指针p所指向的值是i,就实现i=j;i=&j的意思是将j的地址赋予给i;i=* *p的意思是将指针p所指向的值作为一个地址,将地址所指向的值赋予给i。

指针(pointer)是编程语言中的一个对象,利用地址,它的值直接指向(points to)存在电脑存储器中另一个地方的值。由于通过地址能找到所需的变量单元,可以说,地址指向该变量单元。因此,将地址形象化的称为“指针”。

意思是通过它能找到以它为地址的内存单元。

16楼:gta小鸡

根据定义,指针p指向i的地址,因此p指向地址的内容*p就是i的值i=*p,相当于i=i

*p=*&j,相当于i=j,正确

i=&j,地址不能赋值给整型变量

i=**p,p不是一个二级指针,**p强行把i的值视作一个地址,会导致不可预知的结果

17楼:双鱼爱科技

b, *p为p指针所指内容i,&j为j地址,*&j为j地址中的内容。故b

c语言 下列哪个选项与int *p[4];等同

18楼:庄政警

答案是d

int* p[4];是定义了一个数组,有数组元素是类型是int*a选项是定义了一个指针,该指针指向的类型是int[4],是个数组的指针

b选项是定义了一个数组,元素类型是int

c选项是定义了一个二级指针

d选项的含义和int*p[4]是一样的,是个指针数组

下面正确的赋值语句是A.X+Y 30 B.Y X+30 C

1楼 南瓜苹果 赋值语句中,赋值号左边必须是一个变量,而不能是其它表达式。所以a选项没有意义,x y不是一个变量,所以错了。 不是一个合法的变量名。所以d选项也没有意义。 3y不是一个合法的变量名。所以c选项也没有意义。 正确答案是b,意思是把x加上30后的值赋给y。 扩展资料赋值语句的特性 1 赋...