From 59fc284a0ff695878da93376043ea25403029ece Mon Sep 17 00:00:00 2001 From: laialaodi <776273308@qq.com> Date: Tue, 25 Apr 2023 21:29:58 +0800 Subject: [PATCH] =?UTF-8?q?fix=20#284=EF=BC=8C=E4=BF=AE=E6=94=B9const?= =?UTF-8?q?=E6=8C=87=E9=92=88=E4=B8=AD=E7=9A=84=E9=94=99=E8=AF=AF=E5=86=85?= =?UTF-8?q?=E5=AE=B9=E5=B9=B6=E5=A2=9E=E5=8A=A0=E6=A0=B7=E4=BE=8B?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- basic_content/const/README.md | 51 +++++++++++-------- .../funciton_const/condition2/condition1.cpp | 2 +- 2 files changed, 32 insertions(+), 21 deletions(-) diff --git a/basic_content/const/README.md b/basic_content/const/README.md index 7240f36..e5c7db5 100644 --- a/basic_content/const/README.md +++ b/basic_content/const/README.md @@ -28,7 +28,7 @@ const int a=100; ```cpp void f(const int i){ - i++; //error! + i++; // error! } ``` @@ -58,9 +58,9 @@ int main(){ > const常量在不同文件的访问 ```cpp -//extern_file1.cpp +// extern_file1.cpp extern const int ext=12; -//extern_file2.cpp +// extern_file2.cpp #include extern const int ext; int main(){ @@ -88,10 +88,10 @@ const int i,j=0 // error: uninitialized const ‘i’ 与指针相关的const有四种: ```c++ -const char * a; //指向const对象的指针或者说指向常量的指针。 -char const * a; //同上 -char * const a; //指向类型对象的const指针。或者说常指针、const指针。 -const char * const a; //指向const对象的const指针。 +const char * a; // 指向const对象的指针或者说指向常量的指针。 +char const * a; // 同上 +char * const a; // 指向类型对象的const指针。或者说常指针、const指针。 +const char * const a; // 指向const对象的const指针。 ``` > **小结:**
@@ -115,7 +115,7 @@ const char * const p; //p is a const pointer to const char ```cpp const int *ptr; -*ptr = 10; //error +*ptr = 10; // error ``` ptr是一个指向int类型const对象的指针,const定义的是int类型,也就是ptr所指向的对象类型,而不是ptr本身,所以ptr可以不用赋初始值。但是不能通过ptr去修改所指对象的值。 @@ -125,7 +125,7 @@ ptr是一个指向int类型const对象的指针,const定义的是int类型, ```c++ const int p = 10; const void * vp = &p; -void *vp = &p; //error +void *vp = &p; // error ``` 另外一个重点是:**允许把非const对象的地址赋给指向const对象的指针**。 @@ -135,7 +135,7 @@ void *vp = &p; //error ```c++ const int *ptr; int val = 3; -ptr = &val; //ok +ptr = &val; // ok ``` 我们不能通过ptr指针来修改val的值,即使它指向的是非const对象! @@ -152,22 +152,33 @@ cout<<*ptr< using namespace std; int main(){ - - int num=0; - int * const ptr=# //const指针必须初始化!且const指针的值不能修改 - int * t = # - *t = 1; + int num=0, num1=1; + int * const ptr=# // const指针必须初始化!且const指针的指向不能修改 + ptr = &num1; // error! const指针不能修改指向! cout<<*ptr< +using namespace std; +int main(){ + int num=0, num1=1; + int * const ptr=# // const指针必须初始化!且const指针的指向不能修改 + *ptr = 1; + cout<<*ptr< int `*`错误! @@ -176,7 +187,7 @@ int main(){ using namespace std; int main(){ const int num=0; - int * const ptr=# //error! const int* -> int* + int * const ptr=# // error! const int* -> int* cout<<*ptr<