猿问

定义指针时加括号是起什么作用的

#include "stdio.h"
main()
{
 int *p;
 int (*q);
}

以上主函数中两句话有什么区别?

**********************************

在上面的代码中问题不够明显,所以我现在再添加一段代码

#include "stdio.h"
main()
{
 int *p[4];
 int (*q)[4];
}

这两句有什么区别,这两种指针变量该如何使用?

1100001
浏览 6127回答 3
3回答

努力提升

*p[4] 是一个指针数组,首先它是一个数组,数组中存的是指针,存指针的数组。(*q)[4] 是数组指针,加括号先与 *结合,它是一个指针,指向一个第一维包含2个元素的2维数组,存数组地址的指针。

努力提升

是的在同一台电脑中是这样的,但如果代码拷到其他电脑上地址会发生改变

努力提升

p是数组名,但不是常量量
随时随地看视频慕课网APP
我要回答