欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

C++40个入门知识点_03_ const指针

程序员文章站 2022-07-12 15:34:40
...

首先放性质:

//const指针:
//(1)const指针书写形式:const TYPE*/TYPE const* 指针指向的内容时无法改变的,指针本身的值是可以修改的
//(2)TYPE* const表示该指针是一个常量,意味指针本身的值不能被修改,但是指针指向的内容是可以修改的
//(3)TYPE const* const表示指针指向的内容及指针本身均不能改变

然后是参考B站视频地址:const指针


#include <iostream>

//const指针:
//(1)const指针书写形式:const TYPE*/TYPE const* 指针指向的内容时无法改变的,指针本身的值是可以修改的
//(2)TYPE* const表示该指针是一个常量,意味指针本身的值不能被修改,但是指针指向的内容是可以修改的
//(3)TYPE const* const表示指针指向的内容及指针本身均不能改变


int main(int nArgc,char* pArgv[])
{
    // "Hello world"为const类型
	//char* p= "Hello world";//报错:"const char *" 类型的值不能用于初始化 "char *" 类型的实体

	//const char* p = "Hello world";

	//const指针的另一种写法
	//char const* p2 = "Hello world";

	//p为const指针,指向const类型类型"Hello world",因此无法修改
	//p[0] = 'a';//报错:"p"不能给常量赋值
	//p2[0] = 'a';//报错:"p2"不能给常量赋值

	//char* p3 = nullptr;//const指针指向的内容时不可以改变的,但是指针时可以修改的
	//p = p3;

	char szBuf[256] = "Hello world";
	char* const p = szBuf;
	p[0] = 'A';

	//p = nullptr;//报错:“p”:不能给常量赋值	

	const int n = 5;
	//利用强转进行访问
	/*int* p4=(int*)&n*/
	//const_cast进行类型转换,用于去除const修饰
	int* p4 = const_cast<int*>(&n);
	*p4 = 1;
	/*const_cast;*/
}