加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

c – const char *,char const *,const char const *&str

发布时间:2020-12-16 03:00:21 所属栏目:百科 来源:网络整理
导读:首先,有什么区别: (1) const char*(2) char const*(3) const char const* 我相当肯定我完全理解了这一点,但是我想让某人给我一个句子,具体来说就是粘在我的脑海里.这是其中一件事,我很好,直到有人把我当场,然后它变得模糊! 另外,编译器如何存储string-lite
首先,有什么区别:
(1) const char*
(2) char const*
(3) const char const*

我相当肯定我完全理解了这一点,但是我想让某人给我一个句子,具体来说就是粘在我的脑海里.这是其中一件事,我很好,直到有人把我当场,然后它变得模糊!

另外,编译器如何存储string-literall?这不是家庭作业,我只是在C上刷新面试,以防任何人关心.

解决方法

1和2是等价的,并指定一个指向const char的指针的类型.指针本身不是const. 3是无效的,因为它重复“const”.就像说const const int一样.这个顺序是不相关的,所以也是说int const int.

在C99中,这样重复const就是有效的.但在C中,你不能重复.

Also,how are string-literalls stored by the compiler?

它们以未指定的方式存储.但编译器可以将它们存储在程序的只读部分.所以你不能写字符串文字.您保证在整个程序生命周期内保持分配(换句话说,它们具有静态存储持续时间).

This isn’t homework,I’m just brushing up on C for interviews in case anyone cares.

你应该意识到C和C之间的细微差别.在C99中,如上所述,const const int是允许的.在C89和C中是禁止的.在C中,您可以引入一个冗余的const,如果应用于本身是const的typedef:

typedef int const cint;
cint const a = 0; // this const is redundant!

模板参数也是如此.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读