const

程序员成长之旅 · 程序员成长之旅/C++ · 689 字

const与基本数据类型 const int a = 10; // 和C中相同, 指a为一个常量10;

1 const

int

a

=

10 ; // 和C中相同, 指a为一个常量10; const与指针 //const修饰*p, 所以可以修改p的地址, 但不能修改p的值 int y = 5; int x = 3; const int p = &x; //这里const 修饰的是p, 所以可以改变p的地址, 但是不能改变p的值. p = &y;//正确 p = 4//错误 //修饰p, 所以可以修改p的值(也就是p), 但不能修改p的地址. int y = 5; int x = 3; int const p = &x; //这里const 修饰的是p, 所以可以修改p的值(也就是p), 但不能修改p的地址. p = 4;//正确 p = &y;//错误 //既修饰p也修饰p int y = 5; int x = 3; const int *const p = &x; //这里const 既修饰地址也修饰值, 所以两种都不能发生改变. *p = 4;//错误 p = &y;//错误

1 //const修饰*p, 所以可以修改p的地址, 但不能修改p的值 2 3 int

y

=

5 ; 4 5 int

x

=

3 ; 6 const

int

p

=

& x ; //这里const 修饰的是*p, 所以可以改变p的地址, 但是不能改变p的值. 7 p

=

& y ; //正确 8 * p

=

4 //错误 9 10 //修饰p, 所以可以修改p的值(也就是*p), 但不能修改p的地址. 11 int

y

=

5 ; 12 13 int

x

=

3 ; 14 int

const

p

=

& x ; //这里const 修饰的是p, 所以可以修改p的值(也就是*p), 但不能修改p的地址. 15 * p

=

4 ; //正确 16 p

=

& y ; //错误 17 18 19 //既修饰*p也修饰p 20 int

y

=

5 ; 21 22 int

x

=

3 ; 23 const

int

const

p

=

& x ; //这里const 既修饰地址也修饰值, 所以两种都不能发生改变. 24 * p

=

4 ; //错误 25 p

=

& y ; //错误

const与引用 int x = 3; const int &y = x; //这里const 修饰的是&y, 所以&y无法赋值, 但是可以通过直接更改被引用的对象来达到"修改"&y的作用. x = 10;//正确 y = 20;//错误

1 int

x

=

3 ; 2 const

int

& y

=

x ; //这里const 修饰的是&y, 所以&y无法赋值, 但是可以通过直接更改被引用的对象来达到"修改"&y的作用. 3 x

=

10 ; //正确 4 y

=

20 ; //错误

const指针和const数组 const int constArray[5] = {1,2,3,4,5}; const int *constArrayTest = constArray; //注意这里的constArray实际上就是constArray第一个数的地址;

1 const

int

constArray [ 5 ]

{ 1 , 2 , 3 , 4 , 5 }; 2 const

int

constArrayTest

=

constArray ; //注意这里的constArray实际上就是constArray第一个数的地址;

例子

附件