88问答网
所有问题
c语言问题!int *p[4]和int (*p)[4]有什么区别?
如题所述
举报该问题
推荐答案 2014-03-30
int *p[4],就是p本质上是个数组,只不过数组中的每个元素都是指针
int (*p)[4],就是p本质上是个指针,指针指向一个一维的数组
这种题的话,其实可以先根据运算符的优先级、结合性,先确定标识符本质上是一个什么,然后再去补充
例如,int *p[3],先根据优先级,等效于*(p[3]),所以p本质上是一个有三个元素的数组;那么数组的每个元素又是什么呢?是一个指针;那指针指向的又是什么呢?是指向一个int型的数据;所以整理一下就是p是一个有三个指向int数据的指针的数组,本质上就是一个数组
温馨提示:答案为网友推荐,仅供参考
当前网址:
http://88.wendadaohang.com/zd/gaVgM1S1cgacVMttSgc.html
其他回答
第1个回答 2014-03-30
int *p[4]是定义了一个四个元素的数组,元素类型为int的指针
后一个是定义了一个int指针,指向内存中4个int大小一块区域的首地址,以四个int单位
如p++,是移动4
第2个回答 2014-04-02
前者指针数组,后者数组指针
相似回答
c语言中
int
*p[4]和int
(*p)[4]什么区别
答:
前者是指针数组,为4个int指针的数组,有4个元素 后者是数组指针,为一个指针
,类型为指向包含4个int类型元素的一维数组的指针
int(* p)[4]和int* p[4]
的
区别
是
什么?
答:
int (*p)[4] 和 int *p[4]的区别为:
性质不同、长度不同、指向不同
。一、性质不同 1、int (*p)[4]:int (*p)[4]是个指针,指向有四个int类型数据的数组。2、
int *p[4]:int *p[4]是个数组
,每个元素都是一个int *指针。二、长度不同 1、int (*p)[4]:int (*p)[4]的长度为...
int
(*p)[4] 和 int
*p[4]
的
区别?
答:
int (*p)[4] 和 int *p[4]的区别为:
性质不同、长度不同、指向不同
。一、性质不同 1、int (*p)[4]:int (*p)[4]是个指针,指向有四个int类型数据的数组。2、
int *p[4]:int *p[4]是个数组
,每个元素都是一个int *指针。二、长度不同 1、int (*p)[4]:int (*p)[4]的长度为...
int
(*p)[4]
等同于int
*p[4]
吗?
答:
答:不等同
。int *p[4]是一个指针数组,就是数组里面放的是指针。由于[]比*优先级更高,因此p先与[4]结合,形成p[4]形式,这显然是数组形式,它有4个元素,然后再与p前面的*结合,*表示此数组是指针类型的,每个数组元素(也就是一个指针变量)都可以指向一个整形变量。*p[4]是指针数组,他是...
C语言中
int*p[4] 和 int(*p)[4]
的
区别
是
什么?
答:
int*p[4]
是指针的数组,也就是说它是一个数组,数组里存的是一个个的指针
int(*p)[4]
是数组的指针,也就是说它是一个指针,指向的是一个数组。指针指向的类型会影响到指针加减运算时地址的位移。比如说有一个数组 int a[4],加上取址运算符 &a,这个表达式的类型就是指向数组的指针,可以...
c语言中
int
*p[4]和int
(*p)[4]
在定义和使用方面
有什么区别?
O(∩...
答:
p[4]这指针数组,定义一个数组,里面存放的是指针。
(*p)[4]
定义的是一个指向一维数组的指针,这是一个指针,p++相当于p的地址相加了1*4 举例说明:include <stdio.h> void main(){
int
a[2][2]={{1,2},{8,9}};int
*p[4]
,(*q)[2];q=a;p[0]=&a[0][0];p[1]=&a[0]...
C语言int
(*p)[4]和int
*p[4]区别
答:
int
*p[4]
, 是一个长度为4的指针数组,数组的元素为int*;sizeof(p) => 4*4 = 16;(32位系统一个指针4字节)用法:*(p[0])int
(*p)[4]
是一个指向长度为4数组的指针,即int(*)[4];其本质是一个指针,如在32为系统上,sizeof(p) => 4 用法:(*p)[0]....
int
(*p)[4]和 int
a[4]; int *p=a;有本质
区别
么, int (*p)[4]如何...
答:
区分一下
int* p[4]和int
(*p)[4]
前者代表p是一个数组,里面装的是int*型的指针;后者相反,p是一个指针,指向一个int[4]的数组。所以归根结底,这里p是一个指针。那么,我的理解是,*p打印出来是这个int[4]的首地址,而不是这个数组里面的值。而且,p+1的话,地址相当于以int[4]为单位...
大家正在搜
c语言char是什么
static c语言
void在c语言中什么意思
c语言!是什么
?c语言什么意思
c语言i++和++i
c语言int范围
c语言中%s和%c
c语言题目
相关问题
C语言中 int*p[4] 和 int(*p)[4]的区别
C语言int (*p)[4]和int *p[4]区别
c语言中 int *p[4]和int (*p)[4]什么区别
int (*p)[4] 和 int *p[4]的区别?
c语言中 int *p[4]和int (*p)[4]在定义和...
C语言中int (*p)[4]与int **p的区别
C语言中 int*p[4] 和 int(*p)[4]的区别是...
请问下在C语言中int (*p)[4]与int **p到底有...