指向const对象的指针
#include <iostream>
using namespace std;
int main() {
const int num1 = 5;
//普通指针不能修改const变量
const int *ptr1 = &num1;
cout << *ptr1 << endl;
//指向const对象的指针不能修改指向的值(解引用的值)
//指向const对象的指针可以修改指向的地址
const int num2 = 6;
ptr1 = &num2;
cout << *ptr1 << endl;
//指向const对象的指针可以指向普通对象
int num3 = 7;
ptr1 = &num3;
cout << *ptr1 << endl;
}
const指针
#include <iostream>
using namespace std;
int main() {
int num1 = 1;
int num2 = 2;
int* const ptr1 = &num1;
//const指针不能修改指向地址
//ptr1 = &num2;
const int num3 = 3;
const int num4 = 4;
const int *const ptr2 = &num3;
cout << *ptr2 << endl;
//指向const对象的const指针既不能修改指向的对象,又不能修改值
//ptr2 = &num4;
return 0;
}
综合比较
#include <iostream>
using namespace std;
int main() {
int a = 1;
int b = 2;
int c = 3;
const int* p1 = &a;
int* const p2 = &b;
const int* const p3 = &c;
cout << *p1 << endl;
cout << *p2 << endl;
cout << *p3 << endl;
}