const的用法

来源:互联网 发布:我的世界1.0创造背包js 编辑:程序博客网 时间:2024/04/29 04:12

const修饰的是紧跟其后的内容,例如:

int const *p; const int *p; const修饰的是*p,即p所指向的内容是常量。因此,p指向的地址可以改变,但p指向的地址里的值不能通过指针p改变(但可由其他方式改变);

int * const p; const 修饰的是p,即p所指向的地址是常量。因此,p所指向的地址不能改变,但p所指地址里的值可通过指针p改变;

int const * const p; 第一个const修饰的是*p,即p所指地址的内容不能通过指针p改变,第2个const修饰的内容是p,即p所指向的地址不变。

因此,int const *p 和const int *p是相同的,都是指不能通过*p是常量,但在2中用法中,推荐使用int const *p,这样含义明确,const修饰的即是*p,在复杂的声明中,明确的含义有助于读懂程序,比如:char const *(*aaa)[10]很容易让人明白const修饰的是*(*aaa)[i],而const   char   *(*aaa)[10]则要隐晦一些

原创粉丝点击