mirror of
https://github.com/huihut/interview.git
synced 2024-03-22 13:10:48 +08:00
对const修饰的指针、引用的再修改
This commit is contained in:
parent
64da1157bf
commit
2dd3a8bf52
12
README.md
12
README.md
|
@ -50,8 +50,8 @@
|
||||||
#### 作用
|
#### 作用
|
||||||
|
|
||||||
1. 修饰变量,说明该变量不可以被改变;
|
1. 修饰变量,说明该变量不可以被改变;
|
||||||
2. 修饰指针,分为指向常量的指针(pointer to const)和指针常量(const pointer);
|
2. 修饰指针,分为指向常量的指针(pointer to const)和自身是常量的指针(常量指针,const pointer);
|
||||||
3. 常量引用,经常用于形参类型,即避免了拷贝,又避免了函数对值的修改;
|
3. 修饰引用,指向常量的引用(reference to const),用于形参类型,即避免了拷贝,又避免了函数对值的修改;
|
||||||
4. 修饰成员函数,说明该成员函数内不能修改成员变量。
|
4. 修饰成员函数,说明该成员函数内不能修改成员变量。
|
||||||
|
|
||||||
> (为了方便记忆可以想成)被 const 修饰(在 const 后面)的值不可改变,如下文使用例子中的 `p2`、`p3`
|
> (为了方便记忆可以想成)被 const 修饰(在 const 后面)的值不可改变,如下文使用例子中的 `p2`、`p3`
|
||||||
|
@ -83,20 +83,20 @@ void function()
|
||||||
A b; // 普通对象,可以调用全部成员函数、更新常成员变量
|
A b; // 普通对象,可以调用全部成员函数、更新常成员变量
|
||||||
const A a; // 常对象,只能调用常成员函数
|
const A a; // 常对象,只能调用常成员函数
|
||||||
const A *p = &a; // 指针变量,指向常对象
|
const A *p = &a; // 指针变量,指向常对象
|
||||||
const A &q = a; // 常引用
|
const A &q = a; // 指向常对象的引用
|
||||||
|
|
||||||
// 指针
|
// 指针
|
||||||
char greeting[] = "Hello";
|
char greeting[] = "Hello";
|
||||||
char* p1 = greeting; // 指针变量,指向字符数组变量
|
char* p1 = greeting; // 指针变量,指向字符数组变量
|
||||||
const char* p2 = greeting; // 指针变量,指向字符数组常量(const 后面是 char,说明指向的字符(char)不可改变)
|
const char* p2 = greeting; // 指针变量,指向字符数组常量(const 后面是 char,说明指向的字符(char)不可改变)
|
||||||
char* const p3 = greeting; // 常指针,指向字符数组变量(const 后面是 p3,说明 p3 指针本身不可改变)
|
char* const p3 = greeting; // 自身是常量的指针,指向字符数组变量(const 后面是 p3,说明 p3 指针自身不可改变)
|
||||||
const char* const p4 = greeting; // 常指针,指向字符数组常量
|
const char* const p4 = greeting; // 自身是常量的指针,指向字符数组常量
|
||||||
}
|
}
|
||||||
|
|
||||||
// 函数
|
// 函数
|
||||||
void function1(const int Var); // 传递过来的参数在函数内不可变
|
void function1(const int Var); // 传递过来的参数在函数内不可变
|
||||||
void function2(const char* Var); // 参数指针所指内容为常量
|
void function2(const char* Var); // 参数指针所指内容为常量
|
||||||
void function3(char* const Var); // 参数指针为常指针
|
void function3(char* const Var); // 参数指针为常量
|
||||||
void function4(const int& Var); // 引用参数在函数内为常量
|
void function4(const int& Var); // 引用参数在函数内为常量
|
||||||
|
|
||||||
// 函数返回值
|
// 函数返回值
|
||||||
|
|
|
@ -12,8 +12,8 @@
|
||||||
#### 作用
|
#### 作用
|
||||||
|
|
||||||
1. 修饰变量,说明该变量不可以被改变;
|
1. 修饰变量,说明该变量不可以被改变;
|
||||||
2. 修饰指针,分为指向常量的指针(pointer to const)和指针常量(const pointer);
|
2. 修饰指针,分为指向常量的指针(pointer to const)和自身是常量的指针(常量指针,const pointer);
|
||||||
3. 常量引用,经常用于形参类型,即避免了拷贝,又避免了函数对值的修改;
|
3. 修饰引用,指向常量的引用(reference to const),用于形参类型,即避免了拷贝,又避免了函数对值的修改;
|
||||||
4. 修饰成员函数,说明该成员函数内不能修改成员变量。
|
4. 修饰成员函数,说明该成员函数内不能修改成员变量。
|
||||||
|
|
||||||
> (为了方便记忆可以想成)被 const 修饰(在 const 后面)的值不可改变,如下文使用例子中的 `p2`、`p3`
|
> (为了方便记忆可以想成)被 const 修饰(在 const 后面)的值不可改变,如下文使用例子中的 `p2`、`p3`
|
||||||
|
@ -45,20 +45,20 @@ void function()
|
||||||
A b; // 普通对象,可以调用全部成员函数、更新常成员变量
|
A b; // 普通对象,可以调用全部成员函数、更新常成员变量
|
||||||
const A a; // 常对象,只能调用常成员函数
|
const A a; // 常对象,只能调用常成员函数
|
||||||
const A *p = &a; // 指针变量,指向常对象
|
const A *p = &a; // 指针变量,指向常对象
|
||||||
const A &q = a; // 常引用
|
const A &q = a; // 指向常对象的引用
|
||||||
|
|
||||||
// 指针
|
// 指针
|
||||||
char greeting[] = "Hello";
|
char greeting[] = "Hello";
|
||||||
char* p1 = greeting; // 指针变量,指向字符数组变量
|
char* p1 = greeting; // 指针变量,指向字符数组变量
|
||||||
const char* p2 = greeting; // 指针变量,指向字符数组常量(const 后面是 char,说明指向的字符(char)不可改变)
|
const char* p2 = greeting; // 指针变量,指向字符数组常量(const 后面是 char,说明指向的字符(char)不可改变)
|
||||||
char* const p3 = greeting; // 常指针,指向字符数组变量(const 后面是 p3,说明 p3 指针本身不可改变)
|
char* const p3 = greeting; // 自身是常量的指针,指向字符数组变量(const 后面是 p3,说明 p3 指针自身不可改变)
|
||||||
const char* const p4 = greeting; // 常指针,指向字符数组常量
|
const char* const p4 = greeting; // 自身是常量的指针,指向字符数组常量
|
||||||
}
|
}
|
||||||
|
|
||||||
// 函数
|
// 函数
|
||||||
void function1(const int Var); // 传递过来的参数在函数内不可变
|
void function1(const int Var); // 传递过来的参数在函数内不可变
|
||||||
void function2(const char* Var); // 参数指针所指内容为常量
|
void function2(const char* Var); // 参数指针所指内容为常量
|
||||||
void function3(char* const Var); // 参数指针为常指针
|
void function3(char* const Var); // 参数指针为常量
|
||||||
void function4(const int& Var); // 引用参数在函数内为常量
|
void function4(const int& Var); // 引用参数在函数内为常量
|
||||||
|
|
||||||
// 函数返回值
|
// 函数返回值
|
||||||
|
|
Loading…
Reference in New Issue
Block a user