为了账号安全,请及时绑定邮箱和手机立即绑定

char*const和const char*有什么区别?

char*const和const char*有什么区别?

C
犯罪嫌疑人X 2019-06-25 12:59:36
char*const和const char*有什么区别?在以下几个方面有什么区别:char * const和const char *
查看完整描述

3 回答

?
喵喵时光机

TA贡献1846条经验 获得超7个赞

区别在于const char *是指向const char,同时char * const是指向char.

首先,所指向的值不能更改,但指针可以更改。第二,所指向的值可以更改,但指针不能(类似于引用)。

还有一个

const char * const

它是指向常量字符的常量指针(因此有关它的任何内容都不能更改)。

注:

以下两种形式是等价的:

const char *

char const *

这种情况的确切原因在C+标准中进行了描述,但注意并避免混淆是很重要的。我知道一些更喜欢的编码标准:

char const

过关

const char

(带或不带指针)以便将const元素与指针相同。const.


查看完整回答
反对 回复 2019-06-25
?
泛舟湖上清波郎朗

TA贡献1818条经验 获得超3个赞

为了避免混乱,总是附加康斯特预选赛。

int       *      mutable_pointer_to_mutable_int;int const *      mutable_pointer_to_constant_int;int       
*const constant_pointer_to_mutable_int;int const *const constant_pointer_to_constant_int;


查看完整回答
反对 回复 2019-06-25
?
慕桂英3389331

TA贡献2036条经验 获得超8个赞

const总是修改它之前的东西(在它的左边),除非它是类型声明中的第一件事,在那里它修改它后面的东西(在它的右边)。

所以这两者是一样的:

int const *i1;const int *i2;

它们定义指向const int..你可以改变i1i2点,但您不能更改它们所指向的值。

这是:

int *const i3 = (int*) 0x12345678;

定义const指向整数的指针并将其初始化为指向内存位置12345678。您可以更改int值位于地址12345678,但不能更改以下地址i3指向。


查看完整回答
反对 回复 2019-06-25
  • 3 回答
  • 0 关注
  • 2137 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信