const : 常规解释==>只读,不能变
1:第一组写法:
const char *p;
char const *p;
本质是一样的,但是在书写上面提倡第一种。
1.1 这样定义的话,首先 p 是一个指针变量,是可以指向任何地方的;但是指向的地址里面的内容是不能变的;
1.2 但是指向的内容是前面的关键字const来修饰的;只能读不能写;
1.3 看到这种修饰的话首先想到的就是字符串==》 "HELLO WORLD!"
2:第二组写法:
char * const p;
char *p const;
本质是一样的,但是在书写上面提倡第一种。
1.1 一旦这样写的话那么指针变量p就不可以指向任何地方,只能指向它的初始值;
1.2 虽然指向的地方不可以改变,但是指向的初始值里面的内容是可以改变的;
1.3 一般这种写法是对内存/硬件资源的一种修饰,这个地址的内容是可以一直不停的刷新的;(常见硬件设计:LCD,显卡缓存等)
3:第三组写法:
const char * const p
这种写法相对而言就限制的更加严格了,一但指针变量p被赋值后,就需要老老实实的指向原来的初始值,不仅需要指向初始值,指向的初始值里面的内容也不能变,
在工程中一般是在产生一种ROM空间。