c++里指向字符串常量的指针和指向字符串的常量的指针有什么区别啊
发布网友
发布时间:2023-07-25 22:12
我来回答
共1个回答
热心网友
时间:2023-08-04 12:37
指向
"字符串常量"
和
指向字符串的"
常量的指针"
前者字符串是常量,
后者指针是常量.
常量就是
"不许修改的量",
所以
前者
"不许修改字符串",
后者是
"不许修改指针"
例如:
const
char*
p
=
"hello";
//
指向
"字符串常量"
p[0]
=
'X';
//
错误!
想要修改字符串的第一个字符.
但是常量不允许修改
p
=
p2;
//
正确!
让p指向另外一个指针.
char*
const
p
=
"hello";
//
指向字符串的"
常量的指针"
p[0]
=
'X';
//
正确!
允许修改字符串,
因为该字符串不是常量
p
=
p2;
//
错误!
指针是常量,
不许修改p的指向
顺便说一句.
char
const
*
和
const
char*
是一样的.
const
的位置在char左边还是右边都一样.
常量指针的const应当写在
*星号的右边.
指向常量字符串的常量指针的写法是
const
char*
const
p
=
"xx";
要2个const