指针数组与数组指针,指针常量与常量指针
2017-09-08 16:38
330 查看
对于上面的东西,我在这博大的中华文化中绕了好久才绕出来,深怕又绕进去了,害怕的我马上写点东西记下来
我仍旧是会区别不出来指针常量和常量指针,但是从代码上我可以认出他们,这就够了
从名字上来看,可以知道哪个在后面就可以确定是数组还是指针了,但从中文弄清了了两个名次的区别对于编程毫无作用
从编译原理角度来看,优先级和右结合让我不再迷茫,[]优先级高于
而int (
从名字上来看,对不起,我看不出来…
还是从编译的角度来看吧
const int
int
看出一个规律,从右往左读就可以搞清楚这两个东西了
参考:
http://blog.csdn.net/Eric_Jo/article/details/4138548
https://www.zhihu.com/question/19829354
我仍旧是会区别不出来指针常量和常量指针,但是从代码上我可以认出他们,这就够了
int *p[]; //指针数组,指针型数组,是一个数组,类型为* int (*p)[]; //数组指针,数组型的指针,是一个指针,指向一个int []数组
从名字上来看,可以知道哪个在后面就可以确定是数组还是指针了,但从中文弄清了了两个名次的区别对于编程毫无作用
从编译原理角度来看,优先级和右结合让我不再迷茫,[]优先级高于
*,编译器读int p[]的时候,先让[]与p进行左结合,然后再与结合,然后再与int结合,也就是说p首先被确定是一个数组,然后该数组中的元素都是int *类型的。
而int (
*p)[],则表明p首先是一个指针了,指向的类型是一个int ,
const int *p; //指针是变量,指向的内容是常量(const int) int* const p; //指针是常量,指向的内容是变量(int)
从名字上来看,对不起,我看不出来…
还是从编译的角度来看吧
const int
*p,
*与p结合,p是一个指针,指向的类型是const int,
int
*const p,const与p结合,p是一个常量,然后与*结合,p是一个指针,最后指向int
看出一个规律,从右往左读就可以搞清楚这两个东西了
参考:
http://blog.csdn.net/Eric_Jo/article/details/4138548
https://www.zhihu.com/question/19829354
相关文章推荐
- C++中,数组名不是一个简单地指针常量
- "显微镜"下细看字符串常量初始化数组和指针
- 第二章 数组名是一个指针常量吗?
- const,指针,数组,指针常量,常量指针等归纳总结
- 数组名可作为指针常量
- C中的概念 指针常量 常量指针 数组名
- 数组名是一个指针常量吗?
- c++数组名是一个指针常量
- 根据一段代码理清一些变量,常量,数组,指针的关系及理解
- (指针常量,常量指针)-(函数指针,指针函数)-(指针数组,数组指针)
- C语言回顾(六、基类型,数组指针,字符串指针,函数指针,文字常量区)——iOS开发基础
- C语言的指针 指针常量 只读 多维数组的指针
- char * 与 char [] 区别,char *[] 与 char[][]区别。字符串指针的数组与二维char数组区别。字符串常量赋予指针与字符数组区别。"字符串"等价于其首元素"字"的地址
- c/c++ 函数、常量、指针和数组的关系梳理
- 数组与指针的艺术 第二章 数组名是一个指针常量吗?
- 第二章 数组名是一个指针常量吗?
- 用字符数组和字符串指针定义字符串常量时需要注意的一点
- c/c++ 函数、常量、指针和数组的关系梳理
- 常量数组指针的一些用法
- 数组中括号与指针关系、数组名常量指针分析