指针常量与常量指针



代码如下:

#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;
*/




作者:艾孜尔江

posted @ 2021-06-17 20:33  艾孜尔江  阅读(70)  评论(0编辑  收藏  举报