概述
在使用常量指针时,应该要明确以下3个问题:
● 指针 (地址) 本身是常量?
● 指针所指向的内容是常量?
● 指针本身和所指向的内容是常量?
常量指针通常有以下几种形式:
(1) char * const a;
(2) char const *a;
(3) const char *a;
(4) const char *const a;
第(1) 种形式表示字符指针a本身是常量,但是a所指向的内存空间数据是可以改变的,这种定义方式,注意定义时一定要初始化
第(2) 种形式表示字符指针a所指向的内存空间数据是常量,不可以改变,但是指针的本身是可以改变的
第(3)种形式与第(2)种形式相同。
第(4)形式表示字符指针a本身是常量,但是a所指向的内存空间数据也是常量,这种形式定义时一定要初始化。
示例:
/******************************
常量指针程序分析
*******************************/
#include <iostream>
using namespace std;
int main()
{
char ch1 = 'a';
char ch2 = 'b';
char const *p_ch;
p_ch = &ch1;
cout << *p_ch << endl;
p_ch = &ch2;
cout << *p_ch << endl;
*p_ch = 'c';
cout << *p_ch << endl;
return 0;
}
编译之后会出现错误:
In function ‘int main()’:
错误:assignment of read-only location
出现错误的原因便是*p_ch的值改变了,但是*p_ch的地址是可以改变的
最后
以上就是简单蜗牛为你收集整理的C++读书笔记—常量指针的使用注意点的全部内容,希望文章能够帮你解决C++读书笔记—常量指针的使用注意点所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
发表评论 取消回复