黑马程序员技术交流社区
标题:
const 指针问题
[打印本页]
作者:
Ye•Ye
时间:
2014-5-5 13:18
标题:
const 指针问题
本帖最后由 Ye•Ye 于 2014-5-6 11:19 编辑
请问这三种写法有什么区别啊?
char * const p;
char const * p;
const char *p;
貌似效果是一样的。
作者:
星河鹭起
时间:
2014-5-5 13:29
以前我刚好回答过这个类似问题:
1)p因为有了const 的修饰,所以只是一个指针常量:也就是说p值是不可修改的。
2)整个*p的前面没有const 的修饰。也就是说,*p是变量而不是常量。
总结两:
1) 如果const 修饰在*p前,则不能改的是*p(即不能类似这样:*p=50;赋值)而不是指p。
2) 如果const 是直接写在p前,则p不能改(即不能类似这样:p=&i;赋值)。
作者:
吉大人
时间:
2014-5-5 15:06
const char *p;表示指针变量p指向的char变量是常变量,不能通过p来改变其值。
char * const p;表示p是指向char变量的常指针,p的值(即p的指向)不能改变。
char const * p;指针指向的内容定为const,也就是不能修改指针指向的内容。
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2