const与指针
正常指针
可以修改指向和值
int* q1 = &p1; *q1 = 25; q1 = &p2; *q1 = 19; cout << p1 << " " << p2 << endl;
常量指针
可以修改指向,但是不能修改值
const int* q2 = &p1; cout << *q2 << endl; q2 = &p2; cout << *q2 << endl;
指针常量
可以修改值,但是不可以修改指向
int* const q3 = &p1; *q = 26; cout << p1 << endl;
指向常量的指针常量
const int* const q4 = &p1;
全部代码
#include<bits/stdc++.h> using namespace std; int main() { int p1 = 24; int p2 = 18; //第一种,正常指针 //可以修改指向和值 int* q1 = &p1; *q1 = 25; q1 = &p2; *q1 = 19; cout << p1 << " " << p2 << endl; //第二种,常量指针 //可以修改指向,但是不能修改值 const int* q2 = &p1; cout << *q2 << endl; q2 = &p2; cout << *q2 << endl; //第三种,指针常量 //可以修改值,但是不可以修改指向 int* const q3 = &p1; *q = 26; cout << p1 << endl; //第四种,指向常量的指针常量 //指向和值都不能修改 const int* const q4 = &p1; return 0; }