指针总结&字符串

1.常量指针:

例如: int const *a ;
const int *a ;

指针常量:
int * const a;

从左到右const先靠近谁, 就读谁: int const *a ; int是常量 所以读作常量指针
比如int * const a; *更靠近const 所以读作 指针常量

2.常量指针和指针常量 的区别:
常量指针修饰的是 int ,所以常量不能变,但可以通过指针指向修改值;
指针常量修饰的是* ,所以指针指向不能修改,但是指向的内容可以修改。

说道指针常量和常量指针,又想叨叨 指针数组和数组指针了......

3.指针数组和数组指针

指针数组:int *aar [5] ={1,2,3,4,5};
数组指针:int (*aar)[5]={1,2,3,4,5};

主要看修饰的数组还是指针,比如aar[5] 中括号的优先级高于号,所以修饰的是数组,
将数组放后面,指针放前面;所以读作指针数组

比如(*aar)[5] 括号的优先级高于中括号的优先级,所以修饰的是指针,
将指针放后面,数组放前面;所以读作数组指针

image.png

结合上图

可以知道数组指针,和指针数组的步长 即 p++,移动的字节数。
int *aar [5] ={1,2,3,4,5};
aar++;
因为aar指向的是指针,所以步长为8字节

int (aar)[5]={1,2,3,4,5};
数组指针指向的是int ,所以 aar++,步长应为 4
5 =20


结构体

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容