22 luglio
1.
const int i = 0;
const的基本用法。定义出的i为一个常量。不能对其进行再赋值。
必须在定义处进行初始化。
2.
const定义的常量,必须由const int *pi来指定。即:
const int *pi = &i;
这个是合法的定义。int *pi = &i,在编译时,编译器会报错误。
3.
const int *pi;
中pi是一个指针常量,可以对pi进行再赋值操作。但是 如果试图通过pi更改指向的数值,编译器也会报错。
const int i = 0; //right
const int *pi = 0; //right
pi = &i; //right
pi = 0; //right
int j = 1; //right
pi = &j; //right
*pi += 1; //wrong,不能通过pi修改pi执向的值
j++; //right
4.
int i;
int * const pi = &i;
该定义是定义了一个指针常量。他像一个一般的常量定义一样,必须在定义处进行初始化,否则编译器会报错。
pi 必须指向一个变量的地址。不能在再对pi进行赋值。
如果 const int i = 0;
int *const pi = &i;
这是不合法的。编辑器会报错。
可以通过pi修改pi执行地址空间内的值。
int i = 0;
int * const pci = &i;
*pci = 1;
这是合法的。
5。
const int * const pi ;
该pi 可以执行一个const定义的常量值,也可以指向一个变量值。
该pi,必须在定义处进行初始化。
该pi, 不能对其再赋值。
不能通过pi修改其指向变量的值。
const int i;
必须在定义处初始化。
不能对其再赋值。
i的指针必须赋值给 const int *的类型变量。
const int *pi;
不必在定义处初始化。
可以指向const常量,也可以指向普通变量。
不能通过 *pi 修改变量的值。
可以对其进行再赋值。
int * const pi;
必须在定义处初始化。
不能对其再赋值
可以通过 *pi 修改变量的值。
pi 只能执行常量。不能指向变量。