mirror of
https://github.com/Aexiar/c.git
synced 2024-10-22 14:05:45 +02:00
2024年10月22日 09:31
This commit is contained in:
parent
0f37dc5dab
commit
9868df316b
@ -2005,7 +2005,7 @@ register 数据类型 变量 = 初始化值;
|
||||
> [!NOTE]
|
||||
>
|
||||
> * ① 由于现在的计算机的速度愈来愈快,性能愈来愈高, 优化的编译系统能够识别使用频繁的变量,从而自动地将这些变量放在寄存器中,而不需要程序设计者指定。
|
||||
> * ② 因此,现在实际上用 register 声明变量的必要性不大。
|
||||
> * ② 因此,在实际开发中,使用 register 声明变量的频率已经越来越少了!!!
|
||||
|
||||
### 3.3.2 const 修饰变量
|
||||
|
||||
@ -2018,7 +2018,11 @@ register 数据类型 变量 = 初始化值;
|
||||
* 如果一个变量使用 const 修饰,就变为常量,语法如下:
|
||||
|
||||
```c
|
||||
const int MAX_NUM = 100;
|
||||
const int MAX_NUM = 100; // 都可以,但是这种方式
|
||||
```
|
||||
|
||||
```c
|
||||
int const MAX_NUM = 100; // 都可以,但是建议上面的方式
|
||||
```
|
||||
|
||||
* 常量一旦被创建后其值就不能再改变,必须在定义的同时赋值(初始化),后面的任何赋值行为都将引发错误。
|
||||
@ -2053,15 +2057,21 @@ int main() {
|
||||
* const 也可以和指针变量一起使用,这样可以限制指针变量本身,也可以限制指针指向的数据。const 和指针一起使用会有几种不同的顺序,如下所示:
|
||||
|
||||
```c
|
||||
const int *p1;
|
||||
// 指针常量:指向常量的指针
|
||||
// 表示该指针所指向的对象的值不能通过指针修改,但指针本身可以指向其他地址。
|
||||
const int *p1; // 不能通过该指针去修改指向对象的值。
|
||||
```
|
||||
|
||||
```c
|
||||
int const *p2;
|
||||
// 指针常量:指向常量的指针
|
||||
// 表示该指针所指向的对象的值不能通过指针修改,但指针本身可以指向其他地址。
|
||||
int const *p2; // 不能通过该指针去修改指向对象的值。
|
||||
```
|
||||
|
||||
```c
|
||||
int * const p3;
|
||||
// 常量指针,常量指针意味着指针本身是常量,不能指向其他地址,
|
||||
// 但指针所指向的对象的值可以修改。
|
||||
int* const p3; // 指针的值(即指向的地址)不能改变,但可以通过该指针修改指向对象的值
|
||||
```
|
||||
|
||||
> [!IMPORTANT]
|
||||
@ -2142,7 +2152,7 @@ int main() {
|
||||
|
||||
```
|
||||
|
||||
#### 3.3.2.4 常量参数
|
||||
#### 3.3.2.4 指针常量参数
|
||||
|
||||
* 在C语言中,单独定义 const 变量没有明显的优势,完全可以使用`#define`命令代替。
|
||||
|
||||
@ -2281,5 +2291,5 @@ int main() {
|
||||
> [!CAUTION]
|
||||
>
|
||||
> * ① 正因为 C 语言的这种“坑爹”的语法,很多程序员会将 const 修饰的变量,即:const 常量,称为只读变量。
|
||||
> * ② 但是,对于 C 语言的程序员而已,可以使用指针、函数来动态修改 const 修饰的变量(即:const 常量)的值。
|
||||
> * ② 但是,对于使用 C 语言的程序员而已,可以使用指针、函数来动态修改 const 修饰的变量(即:const 常量)的值。
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user