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

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

生活随笔

當(dāng)前位置: 首頁(yè) > 编程语言 > c/c++ >内容正文

c/c++

C与C++在const用法上的区别

發(fā)布時(shí)間:2025/1/21 c/c++ 87 豆豆
生活随笔 收集整理的這篇文章主要介紹了 C与C++在const用法上的区别 小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

? ? ? ?首先,C和C++在大體結(jié)構(gòu)上不同,卻在語(yǔ)法上相同。 ?所以在使用的時(shí)候,我們會(huì)時(shí)常遇到一些莫名其妙的問(wèn)題,覺(jué)得語(yǔ)法上是正確的,但是編譯的時(shí)候卻出現(xiàn)一個(gè)紅色的 error! 比如今天我遇到的這個(gè)有意思的問(wèn)題。

? ? ?1. 今天看到一段代碼,覺(jué)得很有意思:

1 #pragma warning(disable : 4090) 2 3 #include<stdio.h> 4 5 int main(int argv, char args []) { 6 7 const int var = 4; 8 int *p = &var; 9 *p = 1; 10 printf("%d\n",var); 11 getchar(); 12 }

?答案很定不用說(shuō): ? ?1 ? ? ?原因也很簡(jiǎn)單: ?C弱類(lèi)型語(yǔ)言,C++是強(qiáng)類(lèi)型語(yǔ)言。 ?p指針指向了var的地址,并將var的值改變!

但是,我們?cè)倏纯?#xff0c;這個(gè)兩個(gè)代碼:

1 #include<iostream> 2 3 using namespace std; 4 5 int main(int args , char argv[]) { 6 7 const int var = 10; 8 std::cout << "var =" << var << std::endl; 9 // int * p= &var; --不能轉(zhuǎn)換,會(huì)報(bào)錯(cuò)! 10 //可以使用強(qiáng)制轉(zhuǎn)換 11 int *p = (int *)&var; 12 *p = 3; 13 std::cout << "*p =" << *p << std::endl; 14 int num[var]; 15 16 int i = 0; 17 //初始化 18 for (auto data : num) { 19 data =++i; 20 std::cout<<"num["<<i-1<<"] =" << data << std::endl; 21 } 22 getchar(); 23 return 0; 24 }

2. ?即便你用這個(gè)const_cast《》:強(qiáng)制去掉const屬性,但是*p=3,這條語(yǔ)句 ,p指向的地址的值任然沒(méi)有改變!這兩個(gè)代碼的值,都是這個(gè):

1 #include<iostream> 2 3 using namespace std; 4 5 int main(int args , char argv[]) { 6 7 const int var = 10; 8 std::cout << "var =" << var << std::endl; 9 // int * p= &var; --不能轉(zhuǎn)換,會(huì)報(bào)錯(cuò)! 10 //可以使用強(qiáng)制去掉const 屬性 11 int *p = const_cast<int *>(&var); 12 *p = 3; 13 std::cout << "*p =" << *p << std::endl; 14 std::cout << "var =" << var << std::endl; 15 int num[var]; 16 17 int i = 0; 18 //初始化 19 for (auto data : num) { 20 data =++i; 21 std::cout<<"num["<<i-1<<"] =" << data << std::endl; 22 } 23 getchar(); 24 return 0; 25 }

?

結(jié)果

為:?? 我們可以看到,var的值,沒(méi)有改變! ?原因是C++是強(qiáng)類(lèi)型語(yǔ)言,C++的數(shù)據(jù)的類(lèi)型更加嚴(yán)格與苛刻 ! ?

? ?當(dāng)然對(duì)于C++為何會(huì)出現(xiàn)指針的值為*p=3而var=10這樣的情況,其實(shí),*P所指的常量地址真實(shí)的內(nèi)存已經(jīng)修改了,但是編譯器并沒(méi)有從內(nèi)存地址中取值,而是直接從寄存器中取的值,所以var=10依舊表面上依舊沒(méi)有發(fā)生什么改變!

?

? ? ?2. ? 那么,對(duì)于指針而言呢? const 用到指針就會(huì)發(fā)揮大作用,可以設(shè)定權(quán)限,比如 ?int const * p ? / ?const int *p (這兩個(gè)其實(shí)可以看做是同一個(gè)類(lèi)型)均為常量指針, 還有 int * const p 指針常量,還有const int ?* const p ?;

? ? ? ? 根據(jù)它們的特性 ?權(quán)限如下:

? ? ? ? ? ? int ?const *p ? ? ? ?-----只能讀,不能寫(xiě),既然是指向常量的指針,當(dāng)然是可以指向其他常量的。

? ? ? ? ? ? int ?* ?const p ? ? -----能讀也能寫(xiě),但是既然是指針常量, 當(dāng)然是不能指向其他地址,無(wú)法修改其他地址的值。

? ? ?   int const * const p ? ?----能讀不能寫(xiě),而且無(wú)法指向其他地址的值。

? ? ? 這樣就可以設(shè)定權(quán)限,對(duì)于系統(tǒng)而言,這個(gè)是很安全而且很妥當(dāng)?shù)?#xff0c;還很power ! 當(dāng)然還可以運(yùn)用到指針函數(shù)什么的 ! 這樣const其實(shí)作用還是很有用初 的! ?特別是用在對(duì)安全要求很高的系統(tǒng),比如銀行的系統(tǒng)什么的?

總結(jié)

以上是生活随笔為你收集整理的C与C++在const用法上的区别的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。

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

主站蜘蛛池模板: 亚洲小说区图片区都市 | 国内精品视频在线播放 | 欧洲久久久 | 天天天天天天操 | 一级特级片 | av网址观看| 精品人妻无码一区二区 | 吊视频一区二区三区 | 啪啪啪一区二区 | 在线观看成人 | 亚洲成人三级 | 美女福利视频 | 熟妇人妻系列aⅴ无码专区友真希 | 青青草香蕉 | 黄色免费视频观看 | 高清av网站| 午夜影院一区二区 | 黄视频网站在线 | 国产成人短视频在线观看 | 欧美黄色片网站 | 在线观看黄色小视频 | 啪啪av网 | 色视频网站 | 免费观看a视频 | 女同动漫免费观看高清完整版在线观看 | 亚洲av中文无码乱人伦在线观看 | 久久精品电影 | 国产精品电影网 | 久久久蜜桃一区二区 | 性活交片大全免费看 | 久久97人妻无码一区二区三区 | 乱老熟女一区二区三区 | 手机av在线免费观看 | 国产乱码在线观看 | 日韩av无码一区二区三区不卡 | 羞羞的网站在线观看 | 欧美动态视频 | 精品一区久久 | 黄色一级免费片 | 黄色av导航 | 五月深爱婷婷 | 亚洲天堂男人网 | 蜜臀在线一区二区三区 | 黄色成人在线 | 爱插视频 | 国产精品igao视频 | 无码人妻丰满熟妇啪啪网站 | 男女性杂交内射妇女bbwxz | 日韩在线不卡一区 | 亚洲在线影院 | 日日操狠狠干 | 欧美激情在线一区 | 一本毛片 | 亚洲午夜电影网 | 青草视频免费在线观看 | 成人在线观看一区 | 欧美黄色一级片视频 | 蜜臀国产AV天堂久久无码蜜臀 | 日本a一级| 男人操女人免费 | 亚洲中文字幕视频一区 | 三级在线免费 | 婷婷爱五月 | 亚洲精品久久久蜜桃网尤妮丝 | 国产乱淫av一区二区三区 | 综合视频一区二区 | 成年人看片网站 | www日韩| 动漫精品一区一码二码三码四码 | 黄色片网站在线看 | 亚洲激情免费视频 | 日韩欧美一区二区三区在线 | 色久影院 | 少妇精品一区二区 | 黑人狂躁日本妞hd | 国产欧美日韩精品一区二区三区 | 国产精彩视频 | 日本免费在线播放 | 国产成人精品影视 | 大桥未久av一区二区三区中文 | 久热中文字幕在线 | 国产污污视频在线观看 | 国产一级全黄 | 性xxx欧美| 精品福利三区3d卡通动漫 | 国产精品96| 久久久久一级 | 久色在线 | 邻居少妇张开双腿让我爽一夜 | 亚洲小视频在线观看 | 欧美日韩欧美日韩在线观看视频 | 最新欧美日韩 | 日本免费一区二区三区最新 | 久久午夜av| 中文字幕成人网 | 国产精品一区二三区 | 欧美成人精品一区二区免费看片 | 公交上高潮的丁芷晴 | 欧美三级视频在线播放 |