const与指针

在定义指针的时候我们可以用const来修饰

根据const出现的位置和出现的次数分为三种

1.指向常量的指针

2.常指针

3.指向常量的常指针

 

1.指向常量的指针

 1 #include<bits/stdc++.h>
 2 using namespace std;
 3 
 4 int main()
 5 {
 6     int a = 3,b = 6;
 7     //指向常量的指针
 8     //p是一个变量可以改变它所指的对象,但不可以通过它改变其所指对象的值 
 9     const int *p = &a;
10     cout << a << " " << b << " " << *p << endl;
11 //    *p = 2; 不允许的 
12     a = 2;
13     cout << a << " " << b << " " << *p << endl;
14     p = &b;
15     cout << a << " " << b << " " << *p << endl;
16     return 0;
17 }

 

2.常指针

 1 #include<bits/stdc++.h>
 2 using namespace std;
 3 
 4 int main()
 5 {
 6    int a = 3,b = 5;
 7    int *const p = &a; 
 8 //   常指针
 9 //   也就是指针p为一个常量,我们就不可以改变其所指的对象。
10 //   p = &b; 是不允许的
11 //   但是p所指的是一个变量,我们可以通过p来改变其所指对象的值 
12    cout << a << " " << b << " " << *p << endl;
13    //p = &b是不允许的 
14    *p = 9;
15    cout << a << " " << b << " " << *p << endl; 
16    return 0;    
17 } 
View Code

 

3.指向常量的常指

 1 #include<bits/stdc++.h>
 2 using namespace std;
 3 
 4 int main()
 5 {
 6     int a = 3,b = 5;
 7     const int *const p = &a;
 8 //    指向常量的常指针
 9 //    此处p是一个常量,也就是不能改变其所指的对象
10 //    而且p指向的对象不能通过p来改变所指对象的值
11 //    p = &b 和*p = 2;都是不允许的
12     cout << a << " " << b << " " << *p << endl; 
13     a = 110;//这个是可以的 
14     cout << a << " " << b << " " << *p << endl;
15     return 0;
16 }
View Code

 

posted @ 2019-09-22 11:15  ChunhaoMo  阅读(307)  评论(0编辑  收藏  举报