题目定义语句"int (*p)[5];"的含义是( ). A. p是指针变量,指向一个整型数据 B. p是一个指向一维数组的指针变量 C. p是一个函数并且这个函数用指针变量做函数参数 D. p是一个指向函数的指针,该函数的返回值是一个整形 相关知识点: 试题来源: 解析 B.p是一个指向一维数组的指针变量 ...
int (*p)[5]; 小括号优先,所以 是 1个指针,用来指向 有5个元素的数组。--- 一般来说 int (*p)[n]; 是数组指针(也称行指针)()优先级高,说明p是一个指针,指向一个整型的一维数组,这个一维数组的长度是n,也可以说是p的步长。也就是说执行p+1时,p要跨过n个整型数据的长度。如...
优先级的问题,[]的优先级高于*,这就是为什么后者加了一个(),int *p[5]定义一个指针数组p,讲到底这个p是一个数组,数组内的元素是5个指针,而数组内的每一个指针指向一个int型的变量;int (*p)[5]定义了一个指向5个元素的一维数组的指针。二、含义不同:第二个就是这个指针所指的值是...
int*p[5]; //定义了一个一维数组,数组名是p,有5个元素,元素的类型是int* (整型指针)
(int*)5 是把 int 类型 5 强转成 (int *) 类型 并 赋值给 *p 相当于... p = 5; *p = NULL;printf("%d", p ); 结果应为5 printf("%d", *p); 结果应为 随机数.希望对您有帮助
int **p 定义一个指向指针的指针,具体意思是,该变量是用来存放另一个指向整型变量的指针变量地址的 int *p[5] 定义一个指针数组,用来存放5个指向整型变量的指针变量地址
int *p=5; 这是声明。声明里 *p 只是表示 声明 p 是指针。 *p=5 叫初始化。但这样的初始化...
p是一个一维指针,它可以指向一个有5个元素的int数组。如果是int *p[5];那么p是一个有5元素的数组,每个元素都是一个int指针
for(i = 0;i<5;i++) { printf("%d\n",m[i]); } return 0; } 输出结果为 :1 2 3 4 5 由(*a)[5]产生一个空间大小为5个int的空间,空间的首地址和数组的首地址同样。仅仅是一个空间而已未定义其取值方式。由short*m = a;表示取其空间大小为short的类型。这个类型和int(*a)[5]没有关系,...
不同的,一个是指向有5个元素的整型数组的指针。int (*p)[5],你用p++会发现,p指向的位置向后,移了4*5=20 个字节。跳过的是5个int那么长的长度。后面那个是指向整型的指针,int * p, p++,以后向后移了4个字节,跳过的是4个字节,刚好是一个整型。