C++_const修饰指针
基础知识
- const修饰指针有三种情况
- 指针常量
- 常量指针
- const修饰指针和常量
指针常量
int a = 10;
int b = 20;
int* const p = &a;
这里的p即为指针常量
特点:
p的指向不能发生改变
p指向的内存数据可以更改
p = &b; //error
*p = b; //ok
常量指针
int a = 10;
int b = 20;
const int* q = &a;
这里的q为常量指针
特点:
q的指向可以发生改变
q指向的内存数据不能改变
q = &b; // ok
*q = b; // error
const修饰指针和常量
int a = 10;
int b = 20;
const int* const p = &a;
这里的p即为此种情况
特点:
q的指向不可改变
q指向的内存数据也不能改变
测试源代码
/*
时间:2021.02.11
内容:const修饰指针
*/
/*
* const修饰指针的三种情况
* 1.指针常量
* int* const p = &a;
* *p = b; // ok
* p = &b; // error
* 2.常量指针
* const int* p = &a;
* *p = b; // error
* p = &b; // ok
* 3.const修饰指针和常量
* const int* const p = &a;
* *p = b; // error
* p = &b; // error
*/
#include <iostream>
using namespace std;
int main()
{
int a = 1;
int b = 2;
// 常量指针
const int* p = &a;
p = &b;
*p = b; // error
// 指针常量
int* const q = &a;
q = &b; // error
// const修饰指针和常量
const int* const m = &a;
m = &b; // error
*m = b; // error
system("pause");
return 0;
}
// KEEP CALM AND CARRY ON