const *int、int const *、int *const的区别
#include<iostream>
using namespace std;
static int test = 1;
const int iNum = 1;
class Test
{
public:
Test();
~Test();
int const *test_num;
const int *test_num2;
//int *const test_num3;
};
Test::Test()
{
int a = 2;
int bv = 9;
test_num = &a;
test_num2 = &bv;
//test_num3 = &p;
}
Test::~Test()
{
}
int main()
{
Test A;
cout<<*A.test_num<<endl;
cout<<*A.test_num2<<endl;
int iadd = 1;
int *p = &iadd;
const int *ic1 = p;
*p = 90;
cout<<*ic1<<endl;
return 0;
}
const int *跟const *int是一样的,同样修饰的都是int,test_num、test_num2指向一个int型常量的地址,可以改变其指向;
int *const修饰的指针,ic1指向一个常量不能改变其指向;
环境:
Dev-C++ 5.11
编译器:GCC 4.9.2 64-bit
不知道为什么*test_num2的值会是1,它明明指向的是iTmp2的地址,iTmp2值为9呀!
还没有评论,来说两句吧...