1.const含义?
eg:
const int a;
int const a;
const int *a;
int *const a;
int const *a const;
解析:
1.前两个的作用是一样的,a是一个常整型数。
2.第三个意味着a是一个指向常整型的指针(也就是,整型数是不可修改的,但指针可以)
3.第四个意味着a是一个指向整型数的常指针(也就是说,指针指向的整型数是可以修改的,但指针是不可以修改的)。
4.第五个意味着a是一个指向常整形数的常指针(也就是说,指针指向的整型数是不可修改的,同时指针也是不可以修改的)。
eg: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)(2)的情况相同,都是指针所指向的内容为常量(const放在变量声明符的位置无关),这种情况下不允许对内容进行更改操作,如:不能*a=3;
eg:
const int a;
int const a;
const int *a;
int *const a;
int const *a const;
解析:
1.前两个的作用是一样的,a是一个常整型数。
2.第三个意味着a是一个指向常整型的指针(也就是,整型数是不可修改的,但指针可以)
3.第四个意味着a是一个指向整型数的常指针(也就是说,指针指向的整型数是可以修改的,但指针是不可以修改的)。
4.第五个意味着a是一个指向常整形数的常指针(也就是说,指针指向的整型数是不可修改的,同时指针也是不可以修改的)。
eg: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)(2)的情况相同,都是指针所指向的内容为常量(const放在变量声明符的位置无关),这种情况下不允许对内容进行更改操作,如:不能*a=3;