指针常量与常量指针的区别

// 指针常量与常量指针的区别

// 对象非const
//
int a = 1;
int b = 1;

// 允许修改指针指向对象的值、指针的地址
int *p = &a;

// eg.1 允许修改指针指向对象的值,而不能修改指针指向的地址,即:指针常量
int *const p1 = &a; // error: p1 = &b;

// eg.2 允许修改指针指向的地址,而不能修改指针指向的地址的值,即:常量指针
const int *p2 = &a; // error: *p2 = 100;

// eg.3 等同于eg.2,允许修改指针指向的地址,而不能修改指针指向的地址的值
int const *p3 = &a; // error:*p3 = 100;

 

// 对象为const
// 指向const对象的指针,必须同为const,否则C++编译出错
int const c = 1; // error:int *p = &c;
int const d = 1;

// eg.4 与eg.2相似,允许修改指针指向的地址,而不能修改指针指向的地址的值
const int *p4 = &c; // error:*p4 = 100;

// eg.5 等同于eg.4,允许修改指针指向的地址,而不能修改指针指向的地址的值
int const *p5 = &c; // error:*p5 = 100;

// 最后一种
// eg.6 不允许修改指针指向的地址,以及指针指向的地址的值
const int *const p6 = &a; // error:p6 = &b; *p6 = 100; 这都是错误的

原文链接: https://www.cnblogs.com/rightnow/archive/2012/09/11/2680514.html

欢迎关注

微信关注下方公众号,第一时间获取干货硬货;公众号内回复【pdf】免费获取数百本计算机经典书籍

    指针常量与常量指针的区别

原创文章受到原创版权保护。转载请注明出处:https://www.ccppcoding.com/archives/62496

非原创文章文中已经注明原地址,如有侵权,联系删除

关注公众号【高性能架构探索】,第一时间获取最新文章

转载文章受原作者版权保护。转载请注明原作者出处!

(0)
上一篇 2023年2月9日 上午10:26
下一篇 2023年2月9日 上午10:27

相关推荐