const常见问题

typedef char * pStr;

const pStr p2 = "abcd";

p2++;

答案与分析:

其中p2为const,所以p2++;导致编译错误。

 

char *p = "i'm hungry!";

p[0]= 'I';

答案与分析:

上面的代码可能会造成内存的非法写操作。

 

        const int nValue; //nValue是const

  const char *pContent; //*pContent是const, pContent可变

  const (char *) pContent;//pContent是const,*pContent可变

  char* const pContent; //pContent是const,*pContent可变

  const char* const pContent; //pContent和*pContent都是const

const和指针一起使用是C语言中一个很常见的困惑之处,判断原则:沿着*号划一条

线,如果const位于*的左侧,则const就是用来修饰指针所指向的变量,即指针指向为常量;如果const位于*的右侧,const

就是修饰指针本身,即指针本身是常量。

 

在C++中,const对象只能调用const成员函数。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值