c++ 基础知识-const字符修饰指针 1.const修饰指针-常量指针 指针指向可以修改,但是指针指向的值不可以修改 #include <iostream> using namespace std; int main() { int a = 10; const int * p; p = &a; *p = 30;//error C3892: “p”: 不能给常量赋值 a = 20;//指向的值可以修改 cout<<"*p = "<<*p<<endl; return 0; } 2.const修饰常量-指针常量 指针指向不可以修改,但是指针指向的值可以修改 #include <iostream> using namespace std; int main() { int a = 10; int b = 30; int * const p = &a; //p= &a ;//error C2734: “p”: 如果不是外部的,则必须初始化常量对象 *p = 20;//可以修改 //p = &b;//error C3892: “p”: 不能给常量赋值 cout<<*p<<endl; return 0; } 3.const既修饰常量又修饰指针 指针指向不可以修改,但是指针指向的值不可以修改 #include <iostream> using namespace std; int main() { int a = 10; int b = 30; const int * const p= &a; //p= &a ;//error C2734: “p”: 如果不是外部的,则必须初始化常量对象 //*p = 20;//error C3892: “p”: 不能给常量赋值 //p = &b;//error C3892: “p”: 不能给常量赋值 cout<<*p<<endl; return 0; }