const修饰指针有3种类型:
① const修饰指针:常量指针
指针指向的值不能修改,指针的指向可以修改;
#include<iostream>
using namespace std;
int main() {
int a = 10;
int b = 20;
const int* p = &a;
// *p = 11; 错误,常量指针所指向的值不能修改
p = &b; //正确,常量指针所指向地址可以修改
cout << *p; //输出 20
return 0;
}
② const修饰常量:指针常量
指针指向的地址不能修改,指针指向的值可以修改;
#include<iostream>
using namespace std;
int main() {
int a = 10;
int b = 20;
int* const p = &a;
*p = 11; //正确,指针常量所指向的值可以修改
//p = &b; 错误,指针常量所指向地址不能修改
cout << *p; //输出 11
return 0;
}
③ const修饰指针和常量
指针指向的地址和指针指向的值均不能修改
#include<iostream>
using namespace std;
int main() {
int a = 10;
int b = 20;
const int* const p = &a;
//*p = 11; 错误,指针所指向的值不能修改
//p = &b; 错误,指针所指向地址不能修改
cout << *p; //输出 10
return 0;
}
2006

被折叠的 条评论
为什么被折叠?



