日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程语言 > c/c++ >内容正文

c/c++

C++ const修饰符和指针

發布時間:2025/3/15 c/c++ 18 豆豆
生活随笔 收集整理的這篇文章主要介紹了 C++ const修饰符和指针 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

C++ const修飾符和指針

開發工具與關鍵技術:C++、VisualStudio 作者:何任賢 撰寫時間:2019年04月10日 const修飾符,是用來修飾變量,被const修飾符,修飾過的變量,就叫做常量,常量是一種只能被讀取,不能被修改的量。在C++聲明一個常量時,不但要const修飾符還有在聲明時就要給它進行初始化,你不給它初始化,編譯器就會報錯,不給const修飾符就不是常量,下面是對常量只讀屬性和聲明的示例

void main()
{
const int a = 10;
a = 15;
}

當你嘗試給常量賦值時,編譯器會報錯,并且給你提示,意思是表達式必須是可以修改的左值,證明了常量是不可以修改的,那么你不給常量初始化編譯器又會報什么錯呢?

我們可以看到當我不給常量賦值時,編譯器報錯,并提示常量a需要初始值設定項,證明了常量必須進行初始化操作。
那么我們用const修飾符修飾指針呢?又有什么樣的效果?指針和普通變量不同指針存儲的是地址,那么const修飾符對指針修飾產生的效果有三種。我們先說第一種。
先看代碼和結果我們再說第一種
void main()
{
int x = 10;
const int *a;
a = &x;
cout << “a所指向的地址:” << a << “\n”
<< “a的解地址” << *a << “\n”;
}

通過結果和代碼我們可以知道被const修飾符這樣修飾的指針還是可以獲得地址和解地址的,那么可以改變解地址后的值嗎?因為指針是可以通過地址修改值的,那么讓const修飾過還行嗎?

這個錯誤和上面的是一樣的,我們現在可以知道,const這樣修飾的話,會使指針無法通過解地址修改x的值,這是第一種的效果,我們稱它為指向常量的指針,那么第二種

我們發現第二種有兩個錯誤,和之前的一樣,意思這個指針要進行初始化,該初始化是固定不可修改的。
void main()
{
int x = 10; int *const a= &x;
*a = 15;
cout << *a << “\n”;
}

我們可以知道的是,這樣修飾的指針是可以正常的對解地址的值進行賦值的,那么我們一般稱它為常量指針
那么第三種呢則是這兩種的結合體,不但不可以對解地址賦值,還不能改變指針所指向的地址,而且還必須進行初始化,反正就是什么都不能動,但是我們可以正常的讀取值,這種結合了第一第二種特性,那么它名字也是結合的就是指向常量的常量指針,這就是const修飾符對指針修飾的三種不同的效果。

總結

以上是生活随笔為你收集整理的C++ const修饰符和指针的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。