首页 > 其他 > 详细

int * const 与 const int * 的区别

时间:2014-03-26 07:15:49      阅读:227      评论:0      收藏:0      [点我收藏+]

type * const 与 const type * 是在C/C++编程中特别容易混淆的两个知识点,现在就以 int * const 和 const int * 为例来简略介绍一下这两者之间的区别。

1.int * const 讲解 

   int a = 20;

   int * const b = &a;

   b代表一个指向a变量存储空间的int *常量指针,由于b是一个常量指针,因此其指针值无法改变,亦即无法指向其他的存储空间,但其指向的存储空间的值可以通过 *b = newValue / a = newValue 改变。

示例代码如下:

bubuko.com,布布扣
 1 #include <iostream>
 2 
 3 using namespace std;
 4 
 5 int main()
 6 {
 7     int a = 20;
 8     int * const b = &a;
 9     cout << *b << endl;
10     *b = 40;
11     cout << *b << endl;
12     int c = 60;
13     //b = &c; error
14     cout << *b << endl;
15     return 0;
16 }
View Code

2.const int * 讲解

   int a = 20;

   const int * b = &a;

   b代表一个指向 const int 存储空间的指针,b所指向的存储空间的数值不可以通过 *b = newValue 改变,但可以通过 a = newValue改变,b 也可以指向其他存储空间。

示例代码如下:

bubuko.com,布布扣
 1 #include <iostream>
 2 
 3 using namespace std;
 4 
 5 int main()
 6 {
 7     int a = 20;
 8     const int * b = &a;
 9     cout << *b << endl; // *b = 20
10     //*b = 20; error
11     a = 30;
12     cout << *b << endl; // *b = 30
13 
14     const int d = 55;
15     //int *e = &d; error
16     const int * e = &d;
17     cout << *e << endl; // *e = 55;
18     //d = 20; error
19     //*e = 30; error
20     return 0;
21 }
View Code

int * const 与 const int * 的区别,布布扣,bubuko.com

int * const 与 const int * 的区别

原文:http://www.cnblogs.com/wss-is-knight/p/3624121.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!