diff --git a/docs/notes/02_c-leap/05_xdx/index.md b/docs/notes/02_c-leap/05_xdx/index.md index 564694a..f1f44e3 100644 --- a/docs/notes/02_c-leap/05_xdx/index.md +++ b/docs/notes/02_c-leap/05_xdx/index.md @@ -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 常量)的值。