char * const p
char const * p
const char * p
这三者的区别
好久不弄C了,这个还真的答不上来。
从理论上,它们应该是一样的才对,但C这个东西,真的有太多的不确定性了。
从字面上,或者可以这样理解:
char*const p:一个指向常量的字符串
char const*p:一个指针地址为常量的字符串
const char*p:字符串常量。
有一个简单的记忆办法,你看const修饰的内容是什么。char * const p 里const修饰p,所以p初始化后是不能修改的,即p = q是不允许的。char const*p 、const char*p这两个是一样的,const修饰*p,*p初始化后不能修改,即*p = 'a'是不允许的