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

歡迎訪問(wèn) 生活随笔!

生活随笔

當(dāng)前位置: 首頁(yè) > 编程资源 > 编程问答 >内容正文

编程问答

十分钟深入理解const用法(趣味故事)

發(fā)布時(shí)間:2023/12/29 编程问答 31 豆豆
生活随笔 收集整理的這篇文章主要介紹了 十分钟深入理解const用法(趣味故事) 小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

文章目錄

  • 1、c標(biāo)準(zhǔn)
  • 2、const的用法
  • 3、修飾變量
  • 4、修飾指針
    • 🍅const* p
    • 🍅*const p
  • 5、趣味小故事
  • 6、總結(jié)


1、c標(biāo)準(zhǔn)

1、首先我們來(lái)了解一下現(xiàn)在所學(xué)的C標(biāo)準(zhǔn),分別是C89、C99和C++99,C89標(biāo)準(zhǔn)的C語(yǔ)言中的const和C++中的const是有區(qū)別的,而在C99標(biāo)準(zhǔn)的C語(yǔ)言中是相同的。我們目前所學(xué)的C語(yǔ)言標(biāo)準(zhǔn)為C89標(biāo)準(zhǔn)。
2、在C語(yǔ)言(C89)中的const可以不初始化但后續(xù)也就無(wú)法對(duì)其賦值,所以盡管不初始化不會(huì)出錯(cuò)。但要使用const修飾的量就需要對(duì)其進(jìn)行初始化。

2、const的用法

const:為constant的縮寫(xiě),它修飾的量為一個(gè)常量即不能被修改的量。

  • 修飾變量
  • 修飾指針

3、修飾變量

修飾變量指的是,用const定義的變量不能隨意改變,所以稱(chēng)它為只讀變量

舉個(gè)例子:

int main() {const int n = 10;n = 20;printf("%d\n",n);return 0; }

運(yùn)行結(jié)果可見(jiàn)↓

可見(jiàn)const修飾的變量不能隨意改變!

4、修飾指針

🍅const* p

既然const修飾的變量不能隨意改變,我們是不是可以通過(guò)修改n的地址:int * p=&n,*p=20

int main() {const int n = 10;int* p = &n;*p = 20;printf("%d\n",n);return 0; }


const修飾的n不能改,結(jié)果把&n的值修改了!
這種方式是不是在間接破壞const呢?打個(gè)比方

我不允許你從大門(mén)進(jìn)來(lái),結(jié)果你把窗戶(hù)打碎了進(jìn)來(lái)

我們不允許這種無(wú)賴(lài)的行為發(fā)生,所以我們對(duì)*p進(jìn)行修改:const int * p = &n;

int main() {const int n = 10;const int* p = &n;*p = 20;printf("%d\n",n);return 0; }


這時(shí)候說(shuō)明const可以修飾指針
所以當(dāng)const放在*的左邊的時(shí)候(const int* p) == (const * int p)
修飾的是*p;修飾的是指針?biāo)赶虻膶?duì)象不能再被改變了;但p變量中的地址是可以改變的。

🍅*const p

那換個(gè)方式思考,我們把const放在*的右邊呢?

int main() {const int n = 10;const int* const p = &n;*p = 20;p = 20;printf("%d\n",n);return 0; }

所以當(dāng)const放在*的右邊的時(shí)候(int * const p)
修飾的是p;表示p的內(nèi)容不能被改變,但是p指向的對(duì)象是可以通過(guò)p來(lái)改變的。

5、趣味小故事


舉一個(gè)戀愛(ài)花錢(qián)小故事來(lái)深入理解一下吧

int *p = &M,說(shuō)明女孩p和李澤言M談戀愛(ài)了;

談戀愛(ài)以后,女孩就對(duì)男孩說(shuō):”你請(qǐng)我吃麥旋風(fēng)吧“

因?yàn)橐槐溞L(fēng)要10元錢(qián),意味著:*p = 0;就相當(dāng)于把男孩的10元錢(qián)花掉了;

此時(shí)這個(gè)男孩比較摳門(mén),不愿意把十塊錢(qián)花掉;

男孩就很聰明,在*號(hào)的左邊加了一個(gè)const:

女孩發(fā)現(xiàn)男孩M連一個(gè)把麥旋風(fēng)都不請(qǐng)他吃,毅然決然的分手,于是通過(guò)*p=&n換了一個(gè)有一百塊錢(qián)的男朋友n(白起)

此時(shí)男孩M慌了,心想:”既然你要換男朋友,那么我們?cè)偌s定一下!“

男孩M對(duì)女孩說(shuō):”我可以請(qǐng)你吃,不過(guò)你不能換男朋友!”

男孩M于是把const移到了*號(hào)的右邊;

此時(shí)p = 0可以執(zhí)行,但是p = &m不能執(zhí)行
但是如果你遇到了一個(gè)男朋友:const int const p = &n;那么你可以分手了
說(shuō)明這個(gè)男孩既不請(qǐng)吃東西,又不讓你換男朋友!渣男!!

6、總結(jié)

  • const int* p:const放在了*的左邊,修飾的是*p,使得*p不能通過(guò)p來(lái)改變,但是p可以被改變;
  • int* const p:const放在了*的右邊,修飾的是p,p不能被改變,但是*p可以被改變;
  • const int* const p 既不能改變p,也不能改變*p。渣男!!

總結(jié)

以上是生活随笔為你收集整理的十分钟深入理解const用法(趣味故事)的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。

如果覺(jué)得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。