首页 > 试题广场 >

对下面变量声明描述正确的有()int *p[n];int&n

[单选题]
对下面变量声明描述正确的有()
int *p[n];
int (*)p[n];
int *p();
int (*)p();


  • int *p[n];—–指针数组,每个元素均为指向整型数据的指针
  • int (*)p[n];—p为指向一维数组的指针,这个一维数组有n个整型数据
  • int *p();——函数带回指针,指针指向返回的值
  • int (*)p();—-p为指向函数的指针
百度来的  感觉说的挺清楚
int *p[4]; //表示指针数组,有四个元素,每个元素都是整型指针。
int (*p)[4]; //表示行指针,所指对象一行有四个元素
int *p(void); //表示函数此函数无参,返回整型指针。
int(*P)(void) ;//表示函数针,可以指向无参,且返回值为整型指针的函数。
发表于 2019-10-11 17:21:38 回复(3)
AB:int *p[n];与int (*)p[n];  定义相同,p先与[ ]结合,因为其优先级比*高,所以p是一个数组,然后再与*结合,说明数组里的元素是指针类型,然后再与int结合,说明指针所指向的内容的类型是整型的,所以,p是一个有n个指针的数组,该数组的指针是指向整型的
CD:int *p();与int (*)p(); 定义相同,p先与( )结合,说明p是一个函数,( )里没有内容,说明该函数没有参数,然后再与外面的int *结合,说明函数返回的指针是整型的
发表于 2020-04-11 13:04:46 回复(0)
B和D选项的( )没有把p一起括起来,相当于没括号。B和A是一样的,D和C是一样的

发表于 2020-03-16 15:22:02 回复(1)
int *p[4]; //表示指针数组,有四个元素,每个元素都是整型指针。
int (*p)[4]; //表示行指针,所指对象一行有四个元素
int *p(void); //表示函数此函数无参,返回整型指针。
int(*P)(void) ;//表示函数针,可以指向无参,且返回值为整型指针的函数。
发表于 2020-07-10 18:29:44 回复(0)
这种题型的关键是明白 * 的优先级低于[]和(),p先和哪个符号结合是关键。
发表于 2021-07-15 15:04:38 回复(0)
()的优先级低于[ ]
发表于 2023-02-09 17:28:43 回复(0)
error: expected identifier or ‘(’ before ‘)’ token int (*)p();
D选项其定义本身并不正确,是会报错的。
发表于 2022-09-20 09:48:19 回复(0)

int p[n],指针的数组,
int ( *P)[n],数组的指针。
A-B选项,int *p[n] == int ( * )p[n],对
加括号,不影响解引用的优先级;C-D本质也等效。

发表于 2021-05-30 19:50:51 回复(0)
眼睛瞎了
发表于 2023-11-14 19:16:50 回复(0)
第三行是中文的逗号,有问题哦
发表于 2022-12-12 13:41:07 回复(0)