代码如下:
#include <iostream>
void RefConst()
{
char greeting[] = "Hello world!"; // ---- (0)
char* p = greeting; // non-const pointer, non-const data
const char* p = greeting; // non-const pointer, const data (常量指针、指向常量的指针: *p,即'指针指向的值'为const,不能修改) ---- (1)
char* const p = greeting; // const pointer, non-const data (指针常量、指针修饰的常量: 指向字符的指针常数,即const指针,不能修改p指针,但可修改p指针指向的内容)
const char* const p = greeting; // const pointer, const data
}
int main() {}
/*
(0) 如果用const定义char类型的greeting字符串,下方的 “char* p = greeting; ” 将会报错无法编译通过,∵不是常量接收;
而当没有用常量定义的额时候下方可以任选,可以定义新的变量并定义成常量,这意味着变量可以常量,但常量不能为变量;
(1) p指向greeting,而greeting不是const,可以直接通过greeting变量来修改greeting的值,但却不能通过p指针来修改;
const char* p 等价于 char const* p;
*/
作者:艾孜尔江