C++中使用const修饰指针】的更多相关文章

在本文中呢,主要讲解四个方面,即:常量数据的与否和常量指针的与否中const如何对指针进行修饰: 1.指向非常量数据的常量指针 对于一个指向非常量数据的常量指针,我们应该清楚的知道,在这我们注重的是指针常量,因此,指针始终指向一个内存地址,即该指针存储的地址数据不变,同时也可以通过此指针进行对应存储地址的数据修改,同时需要注意的是,时刻谨记声明为const的指针在声明时必须被初始化.废话不多说,直接上程序测试: //本程序测试指向非常量数据的常量指针 //意在使得大家清楚 const 在修饰指针…
      这种例子在我们平时编程时可能会很少用,但是在面试时被问的可能性就很大了. 用const修饰指针,常见的情况可以分为四种: 1.const int *p; // p 可变,p 指向的对象不可变2.int const *p; // p 可变,p 指向的对象不可变3.int *const p; // p 不可变,p 指向的对象可变4.const int *const p; //指针p 和p 指向的对象都不可变       可以看到,这四种情况面对的问题是p的值和p指向的值是否可以修改. 下…
const int a; int const a; 这两个写法是等同的,表示a是一个int常量. 简记:const后面是什么就限定什么(因为C++标准规定,const关键字放在类型或变量名之前等价的).比如const int *p就是限定(*p),(*p)就是p指向的那段内存不能变,p的值可以改变:如果是int* const p就是限定p指针的值(p指向的对象). , b=; //声明变量. int *p; p=&a; //声明指针. *p=; 则const int *p限定(*p),*p不能变…
在C++里,const修饰指针有以下三种情况 (1)指针常量:即指向常量的指针 const  int *p或者int const *p const在*前,,可以这样理解它的功能,因为const在*前,所以p指向的这个int变量对于*p来说是const的,即不能通过*p改变这个变量的值,但是变量本身可以随便改变自己的值.另外也可以改变p的指向. 例: int x=2; int y=3; const int *p=&x; *p=4;   //错误,不能通过*p改变变量的值 x=4;    //可以,…
关于const修饰指针的情况,一般分为如下4种情况: ; const int *a =&b; //情况1 int const *a =&b; //情况2 int* const a =&b; //情况3 const int* const a =&b; //情况4 如何区别呢? 如果const 位于星号的左侧,则const 就是用来修饰指针所指向的变量,即指针指向为常量: 如果const 位于星号的右侧,const就是修饰指针本身,即指针本身是常量. 1.情况1和2相同,都是指…
原创笔记,转载请注明出处! 点击[关注],关注也是一种美德~ 程序一: 我们知道数组的下标不能为变量,必须是一个确定的值.在C语言中看程序: #define a 10 int main() { //第一部分 int c=20; int d=10; int arr[c+d]; //第二部分 //int const a=20; //int const b=10; //int arr[a+b]; return 0; } 理所当然的编译错误,因为数组下标不能是变量. 在C++中看相同的程序.在C++中这…
const这块的难点 const修饰指针有以下的几种形式 ,不同的形式 它的意义不一样. 形式1: int a=23: const int *p=&a: a是int型,&a是int *型的,要把int *型的赋给 const int *型的.涉及到了点类型转换. 问 const int *p=&a:这个操作,导致了谁不能被操纵了?! 这里修饰的是 *p,所以 *p 如果重新赋值是不可以的!! *p不能变,但是p是可以变的. 第二种: int const * p 这种情况和 cons…
const修饰符 使用const修饰变量时,该变量的值不可修改,因此需要初始化. 例如 const int s = 0: 此时s为值不可变的变量. 那么基于此,当const修饰指针时的情况有三种: (1)const int *p: 此时const修饰的是 *p 而非 p,因此,*p的值不可变,而p的值是可变的,所以可不对p进行初始化. 例如, int s = 0,t = 1; const int *p; p = &s; cout<<*p<<endl; p = &t;…
const修饰指针,一般分为如下四种情况: int b = 500; const int *a = &b;   //情况1 int const *a = &b //        2 int* const a = &b //  3 const int* const a = &b//  4 如何区别呢?1)先看情况1.如果const位于星号的左侧,则const就是用来修饰指针所指向的变量,即指针指向为常量:如果const位于星号的右侧,const就是修饰指针本身,即指针本身是…
const修饰指针 1.const修饰指针 (常量指针)常量的指针 const int *p = &a; const修饰的是*p(表示内容为常量),不是p(指针) 指针指向的地址可以改,但指针指向的值不可以改,这里是指向的值不可改是不能通过*p改,但是可以通过a改, p = &b; (对) * p = 20 (错) 2.const修饰常量 (指针常量)指针是常量 int * const p = &a; const修饰的是p(表示指针是常量) p指向的地址不可以改变,但是该地址内存放…