大致说来其可分为三种情况: const修饰指针,const修饰引用,const修饰指针的引用. 【程序编程相关:《明明白白看MFC之程序框架(三)》】 const修饰指针与引用的用法,对于初学c++的人直是讳莫如深,不知所云.一旦你了解了其用法,一切便不值一哂了.下面我为读者一一释疑: 【推荐阅读:WTL for MFC Programm】 const修饰指针又可分为三种情况: 【扩展信息:WTL for MFC Programm】1.const修饰指针 const修饰指针本身 const修饰指针所指的变量(或对象) const修饰指针本身与指针所指的变量(或对象) (1).const修饰指针本身 这种情形下,指针本身为常量,不可改变,任何修改指针本身的行为都是非法的.例如: const int a = 1; const int b = 2; int i = 3; int j = 4; int* const pi = &i; //ok, pi的类型为int* const , &i的类型为int* const int* const pi = &a; //error, pi的类型为int* const, &a的类型为const int* const pi = &j; //error, 指针是常量,不可变 *pi = a; //ok, *pi并没有限定是常量 ,可变 由此看出,pi是常量,常量在初始化与赋值时,类型必须严格一致.也就是 const修饰指针本身时,=号两边的变量类型必须严格一致,否则不能匹配. (2).const修饰指针指向的变量(或对象) 此种情形下,通过间接引用指针不可改变变量的值,假设指针为p,则*p不可变,下面以例子说明: const int *pi = &a; //or int const *pi = &a; //两者毫无二致,不过bs喜欢前者,这也没什么技术上的优劣之分,也就是说const int与int const可以互换.建议大家熟//悉这两种形式,为简洁便,以后统统用前者. //ok, const并不修饰指针本身,pi对赋值类型 //没要求 ,但pi是int*型指针,所以所赋的必须是个地址值.... 下一页