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 赋...