常量指针(Pointer to const)与指针常量(Const pointer)

常量指针(Pointer to const)与指针常量(Const pointer)

1. Concepts

很多时候对于这两个概念的困惑来自于中文字面翻译。我们无法通过字面含义直接理解判断该‘常量’修饰指针还是指针指向的内容。只有人为的记忆强化使得自己强制记住常量指针 ---- 内容是常量;指针常量 — 指针是常量。其实英文概念很清晰地表面

  • 常量指针是the pointer points to const data,
  • 指针常量是the const pointer.

2. Definitions

总的来说,

  1. 关键字const在星号*左边表示被指的是常量(pointer to const)
  2. 关键字const在星号*右边表示指针本身是常量 (const pointer)

建议大家直接记住该两点定义与对应的英文说法 — pointer to const, const pointer.

Examples

char greeting[] = "hello";
char *p = greeting; //non-const pointer, non-const data
const char *p = greeting; //non-const pointer, const data
char const *p = greeting; //non-const pointer, const data
char* const p = greeting; //const pointer, non-const data
const char* const p = greeting; //const pointer, const data

Explanation

const关键字修饰作用于其后的定义

const char *p = greeting; //char *p指向的是const data
char const *p = greeting; //p指向的是const data
char
const p = greeting; //p指针是const

  • 3
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值