const
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第一个数的地址;
例子