const string* p和String * const p
答案:3 悬赏:10 手机版
解决时间 2021-03-19 00:42
- 提问者网友:雨不眠的下
- 2021-03-18 03:19
const string* p和String * const p
最佳答案
- 五星知识达人网友:鱼芗
- 2021-03-18 04:15
定义指针时
const string* p
const 在 * 左边,说明定义的是指向常量的指针
就是说 不允许 通过 p 赋值
String * const p
const 在 * 右边,说明定义的是常指针
就是说 p 不允许 再指向别处
const string* p
const 在 * 左边,说明定义的是指向常量的指针
就是说 不允许 通过 p 赋值
String * const p
const 在 * 右边,说明定义的是常指针
就是说 p 不允许 再指向别处
全部回答
- 1楼网友:低血压的长颈鹿
- 2021-03-18 05:53
const string* p和String * const p 不一样:
const string *p,是说*p可以改变,但是指向的字符串不能变
string *const p ,是说p不能变,但是string可以变
比如:
char * const p ;
p++ 不可以,因为你改变了P
const char *p;
p++ //可以
const string *p,是说*p可以改变,但是指向的字符串不能变
string *const p ,是说p不能变,但是string可以变
比如:
char * const p ;
p++ 不可以,因为你改变了P
const char *p;
p++ //可以
- 2楼网友:你哪知我潦倒为你
- 2021-03-18 05:16
事实上这个概念谁都有只是三种声明方式非常相似很容易记混。
Bjarne在他的The C++ Programming Language里面给出过一个助记的方法: 把一个声明从右向左读。
(1)string* const cp; ( * 读成 pointer to )
cp is a const pointer to string
(2)const string* p;
p is a pointer to const string;
(3)stringconst * p;
同上因为C++里面没有const*的运算符,所以const只能属于前面的类型。
Bjarne在他的The C++ Programming Language里面给出过一个助记的方法: 把一个声明从右向左读。
(1)string* const cp; ( * 读成 pointer to )
cp is a const pointer to string
(2)const string* p;
p is a pointer to const string;
(3)stringconst * p;
同上因为C++里面没有const*的运算符,所以const只能属于前面的类型。
我要举报
如以上回答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
点此我要举报以上问答信息
大家都在看
推荐资讯