标签:error nbsp col def 不能 初始化 数据类型 clu out
指针指向常量,类似于常量引用,指向常量的指针(pointer to const)不能用于改变其所指对象的值;
const 指针,指针本身为常量(const pointer),必须 初始化,指针的值不能改变
typedef int *pint;类型别名
const pint cpint = 0; //cpint是指向int的常量指针
const pint *pi; //pi是一个指针,它的对象是指向int的常量指针
不能将pint替换为int *
const int *cint = 0; //指向const int 的指针
const pint cpint = 0; //指向int的常量指针
1 #include <iostream> 2 using namespace std; 3 int main() 4 { 5 int ival = 1024; 6 int ival2 = 2048; 7 const int cival = 4096; 8 9 const int *pcint = &ival; //指向常量的指针 10 cout << *pcint << endl; //1024 11 12 pcint = &ival2; //指针的值可改变,指向的值不能改变 13 cout << *pcint << endl; //2048 14 // *pcint = 4096; //error:不能给常量赋值 15 int *const cpint = &ival; //常量指针(指针为常量) 16 // cpint = &ival2; //error:不能给常量赋值 17 *cpint = 4096; // ok 18 cout << *cpint << endl; //4096 19 20 const int *const cpicp = &ival; //指向常量对象的常量指针(指针和指向的对象都是常量) 21 22 // cpicp = &cival; //error:不能给常量赋值 23 // *cpicp = 4096; //error:不能给常量赋值 24 25 typedef int *pint; //基本数据类型为指针 26 const pint cint = &ival; //常量指针 27 cout << cint << endl; //0043FC60 28 cout << *cint << endl; //4096 29 30 const pint cint2 = &ival2; 31 // cint = cint2; //error:不能给常量赋值 32 *cint = 512; // ok 33 34 // pint const pcint = &ival2; //error 重定义:不同的类型修饰符 35 36 const pint *pi = &cint; // pi是一个指针,对象是指向int的常量指针 37 cout << pi << endl; //0043FC18 38 cout << *pi << endl; //0043FC60 39 cout << **pi << endl; //512 40 }
标签:error nbsp col def 不能 初始化 数据类型 clu out
原文地址:http://www.cnblogs.com/zlm-jessie/p/7610462.html