const修饰指针

关于const修饰指针的情况,一般分为如下4种情况:

int b =500;
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相同,都是指针所指向的内容为常量,这种情况下不允许对内容进行更改操作。

  例如

int b =500;
const int *a =&b;    //情况1
*a =600;   //错误

  但也有别的办法改变*a的值,一个是通过改变b的值,另一个是使a指向别处 a = &c 。

对于情况1和2,可以不进行初始化。因为虽然指针内容是常量,但指针本身不是常量。

2.情况3 为指针本身是常量,不能对指针本身进行更改操作,而指针所指向的内容不是常量。

  因此,定义时必须同时初始化。

3.情况4 为指针本身和指向的内容均为常量。

时间: 2024-10-29 19:05:33

const修饰指针的相关文章

用const修饰指针

其实很简单,无奈老是记不住,那就单独写出来吧! a.指针本身不可变,即不可指向其他对象: char* const pContent = “abcde”; pContent[2] = ‘f’;     //合法 pContent = “abfde”;    //不合法 b.指针所指向的对象不可变,即指针不可以修改所指向的对象 const char *pContent = “abcde”; //或者 char const *pContent = “abcde”;     //上下两种情况相同 pCo

c++ const修饰指针

当const遇到指针 一般来说,const修饰指针可以分为下面的集中情况. 描述 例子 含义 备注 const在*的左边 const int *b=&a; int const *b=&a; const修饰指针指向的变量,也就是说我们不能通过修改指针b 指向的值去修改a.即*b=100;这种操作是错误的. 这时候,指针b本身不是常量,*b是常量. 这种情况下,如果要修改*b返回的值,也就是修改指针b所指的对象可以用两种办法: · 改变b指向的变量a的值,a=100; ·让b指向别的变量,in

关于const修饰指针

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 修饰指针的4种情况

  注意:        函数头后加const,表示的是常成员函数,常成员函数理解为是一个"只读"函数,它既不能更改数据成员的值,也不能调用那些能引起数据成员值变化的成员函数,只能调用常成员函数.       const成员函数中,用mutable修饰成员变量后,就可以修改类的成员变量了. 版权声明:本文为博主原创文章,未经博主允许不得转载.

C++中的const和指针组合

在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;    //可以,

c++中的const与指针

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;

C/C++中的const和指针组合

在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的指针

C++用const修饰指针共有四种写法(前两种一样): int a = 100,b = 10; 1  const int *p = &a; 2  int const *p = &a; 3  int *const p = &a; 4  const int *const p = &a; 1.首先说第一种,第一种定义了一个指向常量的指针,当然也可以指向变量,但是指针本身并不是常量,所以可以改变指针的指向,像这样: p = &b; *p = b; //错误,因为p是指向co

const对象指针与const指针

1.const位于*左侧,则修饰对象:位于*右侧,则修饰指针 2.const仅修饰对象时,const对象的指针本身可以改变,即指针地址可改变(指向其它对象):若const修饰指针时,则指针本身不能被改变,但并不限定所指对象的值 1 i=0; 2 const int *ip=&i;//仅限定对象i 3 int const *ip=&i;//仅限定对象i 4 int *const ip=&i;//仅限定指针ip 5 const int *const ip=&i//既限定对象i,