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