首页 > 试题广场 >

如何定义一个int类型的指针数组,数组元素个数为10个。

[单选题]
如何定义一个int类型的指针数组,数组元素个数为10个:
  • int a[10];
  • int (*a)[10];
  • int *a[10];
  • int (*a[10])(int);
推荐
C

“[]”的优先级比“*”要高。

B中,“()”的优先级比“[]”高,“*”号和a构成一个指针的定义,指针变量名为a,int 修饰的是数组的内容,即数组的每个元素。数组在这里并没有名字,是个匿名数组。那现在我们清楚a 是一个指针,它指向一个包含10 个int 类型数据的数组,即数组指针

C中,a先与“[]”结合,构成一个数组的定义,数组名为a,int *修饰的是数组的内容,即数组的每个元素。那现在我们清楚,这是一个数组,其包含10 个指向int 类型数据的指针,即指针数组。


编辑于 2015-01-22 14:33:35 回复(1)
A为int类型的数组
B为int类型的数组的指针
C为int类型的指针的数组
D为函数指针的数组,[]有限级高于*,说明a是一个数组,数组元素的类型为函数指针

选C
发表于 2015-01-20 10:53:43 回复(0)
A:一个长度为10的数组,数组内部放着10个int数据
C:一个长度为10的数组,数组内部放着10个int*数据,就是A中数组内部存储的不是数据而是指针就是地址
B:a是指向一个长度为10的数组整体的指针,a的指针步长就是这个数组的长度
D:首先 *a[10]为一个和C一样的数组里面存储了10个指针数据,只是这里的这些指针数据是一个返回值为int,参数为int的的函数的入口地址,总共是10个函数的地址存储在数组中

发表于 2015-07-14 10:34:49 回复(1)
指针数组和数组指针的区别,int* p[10]指针数组,本质上是数组,里面存的是10个int*类别的数据。
数组指针:int (*p)[10],本质上是数组指针,本质上是一个指针,指向的是一个长度为10的一维数组。
发表于 2019-08-16 14:56:55 回复(0)

指针数组和数组指针是两个不同的概念。

  1. 指针数组(Pointer Array)是一个数组,其中的每个元素都是指针。换句话说,指针数组是一组指针的集合。它的声明形式为type *arrayName[size],其中type是指针数组中元素的类型,arrayName是指针数组的名称,size是指针数组中元素的数量。例如,int *ptrArray[5]声明了一个包含5个指向整型数据的指针的数组。

  2. 数组指针(Array Pointer)是一个指向数组的指针。它指向数组的首个元素的地址。数组指针的声明形式为type (*pointerName)[size],其中type是数组中元素的类型,pointerName是数组指针的名称,size是数组中元素的数量。例如,int (*ptr)[5]声明了一个指向包含5个整型元素的数组的指针。

区别:

  • 内容不同:指针数组是一个数组,每个元素都是指针;而数组指针是一个指针,指向一个数组。
  • 用途不同:指针数组通常用于存储多个指针,可以用于处理多个相关的指针值。而数组指针通常用于指向一个数组,可以通过指针进行数组的访问和操作。
  • 访问方式不同:指针数组可以通过索引来访问每个指针元素,然后再通过解引用操作符 * 来获取指针指向的值。数组指针可以使用指针算术运算符来访问整个数组中的元素。
发表于 2023-09-26 11:24:45 回复(0)
指针数组:array of pointers,即用于存储指针的数组,也就是数组元素都是指针 数组指针:a pointer to an array,即指向数组的指针
发表于 2019-05-12 01:21:20 回复(0)
数组指针:表示指向数组的指针 指针数组:表示指针的数组,即数组里的元素都是指针类型
发表于 2023-05-11 15:08:09 回复(0)

()>[]>*

发表于 2019-10-09 13:16:02 回复(0)
A为int类型的数组
B为int类型的数组的指针
C为int类型的指针的数组
D为函数指针的数组,[]有限级高于*,说明a是一个数组,数组元素的类型为函数指针

选C
发表于 2021-11-18 16:04:32 回复(0)
指针数组和数组指针不一样
发表于 2019-09-03 14:36:57 回复(0)

指针数组:

int (a)[10];
由于()的优先级比
(解引用)的优先级高,则首先说明p是一个指向整型的一位数组的指针,这个一位数组的长度为10.此时执行p + 1相当于跨过10个长度的整型元素.
即如果将b[3][4]赋值给指针数组,执行a = b;,那么a ++ 也就指向了b[1][]这一行。

所以数组指针是指向一位数组的指针,也称为行指针。

数组指针:

int a[10];
由于[]优先级高,先于a结合形成数组,再由int
说明这是一个整型指针数组,它有10个指针类型的数组元素。这里执行a+1时,则a指向下一个数组元素,这样赋值是错误的:a=b;因为p是个不可知的表示,只存在a[0]、a[1]、a[2]...a[n-1],而且它们分别是指针变量可以用来存放变量地址。但可以这样 a=b; 这里a表示指针数组第一个元素的值,b的首地址的值。

如果要二位数组赋值给一指针数组:int a[3],b[3][4];
则执行a++:该语句表示a数组指向下一个数组元素,此数组每一个元素都是指针.
for(i=0;i<3;i++)
a[i]=b[i]
这里int
a[3] 表示一个一维数组内存放着三个指针变量,分别是a[0]、a[1]、a[2]
所以要分别赋值。

两者的区别:
数组指针只是一个指针变量,是C语言里专门用来指向二维数组的,它占有内存中一个指针的存储空间。
指针数组是多个指针变量,以数组形式存在内存当中,占有多个指针的存储空间。

发表于 2017-09-13 21:14:54 回复(0)
话说这不是Java中的内容啊,Java根本就没有关于指针的知识啊~~
发表于 2017-03-18 17:33:58 回复(0)
int类型的指针数组,数组的元素为指针,该指针指向int类型的数据 int类型的数组指针,数组的元素为int类型的数据,定义一个指针指向该数组
发表于 2016-08-23 23:37:30 回复(0)
先与什么结合就是什么。[ ]优先级大于*
发表于 2016-07-11 22:12:48 回复(0)
http://www.cnblogs.com/mq0036/p/3382732.html。指针数组和数组指针的区别
发表于 2015-11-01 10:57:24 回复(0)
C,int  *a[10],表示定义一个十个大小的数组,每个元素是int *,注意【】的优先级高于*
发表于 2015-10-20 13:49:00 回复(0)
A 简单
发表于 2015-05-19 20:49:05 回复(0)
B 优先级 () ,[],*
发表于 2015-04-11 11:23:35 回复(0)
C int *a[10]
A是数组
B是代表a是指针,指向的是一个10元素数组,数组元素是int
D是什么玩意、、、十个指针的数组?10个函数指针数组?
发表于 2015-04-09 17:41:01 回复(0)
C
A 和 D首先排除!
B中,*a首先是指针,然后指向一个数组,是数组指针!
发表于 2015-03-29 18:39:27 回复(0)
C
A和D肯定不对了
B是干扰项,表示一个内存空间,这个空间用来存放一个指针,这个指针指向一个长度为10、类型为int的数组
发表于 2015-03-10 15:35:11 回复(0)