亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 編程 > C > 正文

解析C語言中如何正確使用const

2020-01-26 16:13:45
字體:
供稿:網(wǎng)友

基本解釋
const是一個C語言的關(guān)鍵字,它限定一個變量不允許被改變。使用const在一定程度上可以提高程序的健壯性,另外,在觀看別人代碼的時候,清晰理解const所起的作用,對理解對方的程序也有一些幫助。
雖然這聽起來很簡單,但實際上,const的使用也是c語言中一個比較微妙的地方,微妙在何處呢?請看下面幾個問題。

問題: const變量 & 常量
為什么我象下面的例子一樣用一個const變量來初始化數(shù)組,ANSI C的編譯器會報告一個錯誤呢?
const int n = 5;
int a[n];

答案與分析:
1)、這個問題討論的是“常量”與“只讀變量”的區(qū)別。常量肯定是只讀的,例如5, “abc”,等,肯定是只讀的,因為程序中根本沒有地方存放它的值,當然也就不能夠去修改它。而“只讀變量”則是在內(nèi)存中開辟一個地方來存放它的值,只不過這個值由編譯器限定不允許被修改。C語言關(guān)鍵字const就是用來限定一個變量不允許被改變的修飾符(Qualifier)。上述代碼中變量n被修飾為只讀變量,可惜再怎么修飾也不是常量。而ANSI C規(guī)定數(shù)組定義時維度必須是“常量”,“只讀變量”也是不可以的。

2)、注意:在ANSI C中,這種寫法是錯誤的,因為數(shù)組的大小應(yīng)該是個常量,而const int n,n只是一個變量(常量 != 不可變的變量,但在標準C++中,這樣定義的是一個常量,這種寫法是對的),實際上,根據(jù)編譯過程及內(nèi)存分配來看,這種用法本來就應(yīng)該是合理的,只是 ANSI C對數(shù)組的規(guī)定限制了它。

3)、那么,在ANSI C 語言中用什么來定義常量呢?答案是enum類型和#define宏,這兩個都可以用來定義常量。

問題: const變量 & const 限定的內(nèi)容
下面的代碼編譯器會報一個錯誤,請問,哪一個語句是錯誤的呢?
typedef char * pStr;
char string[4] = "abc";
const char *p1 = string;
const pStr p2 = string;
p1++;
p2++;

答案與分析:
問題出在p2++上。
1)、const使用的基本形式: const char m;
限定m不可變。
2)、替換1式中的m, const char *pm;
限定*pm不可變,當然pm是可變的,因此問題中p1++是對的。
3)、替換1式char, const newType m;
限定m不可變,問題中的charptr就是一種新類型,因此問題中p2不可變,p2++是錯誤的。

問題: const變量 & 字符串常量
請問下面的代碼有什么問題?
char *p = "i'm hungry!";
p[0]= 'I';

答案與分析:
上面的代碼可能會造成內(nèi)存的非法寫操作。分析如下, “i'm hungry”實質(zhì)上是字符串常量,而常量往往被編譯器放在只讀的內(nèi)存區(qū),不可寫。p初始指向這個只讀的內(nèi)存區(qū),而p[0] = 'I'則企圖去寫這個地方,編譯器當然不會答應(yīng)。

問題: const變量 & 字符串常量2
請問char a[3] = "abc" 合法嗎?使用它有什么隱患?

答案與分析:
在標準C中這是合法的,但是它的生存環(huán)境非常狹小;它定義一個大小為3的數(shù)組,初始化為“abc”,,注意,它沒有通常的字符串終止符 '/0',因此這個數(shù)組只是看起來像C語言中的字符串,實質(zhì)上卻不是,因此所有對字符串進行處理的函數(shù),比如strcpy、printf等,都不能夠被使用在這個假字符串上。

問題: const & 指針
類型聲明中const用來修飾一個常量,有如下兩種寫法,那么,請問,下面分別用const限定不可變的內(nèi)容是什么?

1)、const在前面
const int nValue; //nValue是const
const char *pContent; //*pContent是const, pContent可變
const (char *) pContent;//pContent是const,*pContent可變
char* const pContent; //pContent是const,*pContent可變
const char* const pContent; //pContent和*pContent都是const

2)、const在后面,與上面的聲明對等
int const nValue; // nValue是const
char const * pContent;// *pContent是const, pContent可變
(char *) const pContent;//pContent是const,*pContent可變
char* const pContent;// pContent是const,*pContent可變
char const* const pContent;// pContent和*pContent都是const

答案與分析:
const和指針一起使用是C語言中一個很常見的困惑之處,在實際開發(fā)中,特別是在看別人代碼的時候,常常會因為這樣而不好判斷作者的意圖,下面講一下我的判斷原則:
沿著*號劃一條線,const和誰在一邊,那么誰就是const,即const限定的元素就是它。你可以根據(jù)這個規(guī)則來看上面聲明的實際意義,相信定會一目了然。
另外,需要注意:對于const (char *) ; 因為char *是一個整體,相當于一個類型(如 char),因此,這是限定指針是const。

發(fā)表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發(fā)表

圖片精選

成年女人免费视频| 亚洲另类视频| 奇米影音第四色| 亚洲小说春色综合另类电影| 日韩精品一区二区三区色偷偷| 99精品欧美一区二区三区综合在线| 欧美影院三区| 国产精品熟女久久久久久| 亚洲成a人无码| 亚洲欧美另类综合偷拍| 成人综合激情网| 国产丝袜欧美中文另类| 视频一区二区三区不卡| 日本高清久久天堂| 亚洲一本视频| 欧美xx视频| 国产精品99久久久久久白浆小说| 国产香蕉一区二区三区| 国产精品高潮粉嫩av| 一本—道久久a久久精品蜜桃| 91电影91视频| 在线麻豆国产传媒1国产免费| 国产精品全国免费观看高清| 男的操女的网站| 日日橹狠狠爱欧美超碰| 精品久久国产| 天堂网在线观看视频| 久久久久久久免费| 日日夜夜天天综合| 波多野结衣 久久| 亚洲区一区二区三| 欧美在线视频在线播放完整版免费观看| 99久久人妻无码中文字幕系列| 国产精品久久久久久亚洲毛片| 青青草国产成人久久91网| 91精品国偷自产在线电影| 男人的天堂视频网站| 欧美丰满高潮xxxx喷水动漫| 激情五月色综合国产精品| 欧美日韩成人激情| 视频这里只有精品| 在线观看的av网站| 久久久久黄色| 奇米色一区二区三区四区| 中文字幕一区二区三中文字幕| 在线视频自拍| 亚洲深夜福利在线| 日韩中文字幕网站| 日韩高清dvd| 91麻豆精东视频| 日韩欧美综合一区| 超碰97网站| 99热手机在线观看| 青青操综合网| 亚洲高清在线观看| 欧美aaaaa成人免费观看视频| 国产九色porny| 中文字幕一区二区5566日韩| 国产精品综合激情| 国产成人一区三区| jk漫画禁漫成人入口| 波多野结衣网页| 7777久久亚洲中文字幕| 成人av在线播放观看| 日韩一级二级三级| 亚洲女同性videos| 日韩在线免费| 久久久精品日本| 国内爆初菊对白视频| 九九热99视频| 国产成人精品免费看| 欧美一级免费在线观看| 日韩久久一区二区| gogogo高清在线观看免费完整版| 99久久精品免费观看| 国产精品视频一二三| 国产精品无码网站| 国产精品护士白丝一区av| 亚洲成人福利| 亚洲精品乱码久久久久久久| 色av成人天堂桃色av| 影视一区二区| 国内精品模特av私拍在线观看| 久久精品国产精品| 欧美成人69av| 中文字幕日本欧美| 91高清在线免费观看| 999在线观看免费大全电视剧| 国产福利一区二区三区在线播放| 久久人妻无码一区二区| 日韩亚洲国产中文字幕| 一级免费黄色录像| 91精品办公室少妇高潮对白| 91精品久久久久久久久久久久久久| 少妇与大狼拘作爱性a| 亚洲一区二区三区在线观看网站| 日本高清不卡的在线| 日韩经典一区二区三区| 最近高清中文在线字幕在线观看| 欧美高清视频一区二区| 国产视频久久久久| 亚洲中文字幕无码一区二区三区| 综合久久2019| 在线亚洲国产精品网站| 影音先锋中文字幕在线| 日本一区二区在线看| 麻豆一区二区三| 欧美高清在线一区| jizz欧美性11| 亚洲精品wwwww| 激情无码人妻又粗又大| 久久精品国产免费观看| 中文字幕资源网在线观看| 欧美一级黄色片视频| 天天色天天看| 99精彩视频在线观看免费| 久久国产主播精品| 国产中文字幕二区| 亚洲欧美国产日韩中文字幕| 久久视频www| 麻豆视频一区二区| 欧美日韩国产亚洲一区| 高清孕妇孕交╳╳交| 中文亚洲视频在线| 中文字幕国产综合| 国产探花视频在线| 国产精品高潮呻吟AV无码| 婷婷丁香一区二区三区| 久久久久久久午夜| 免费在线黄色片| 懂色一区二区三区免费观看| 欧美wwwwxxxx| 午夜在线视频免费| 波多野结衣av在线播放| 日韩网红少妇无码视频香港| 欧美一区二区三区免费在线看| 成品网站w灬+源码1| 综合色婷婷一区二区亚洲欧美国产| 亚洲成年人专区| 亚洲精品自产拍在线观看app| 欧美日韩在线精品一区二区三区| 欧美日韩免费一区| 暖暖在线中文免费日本| 欧美成人免费在线| 影音av在线| 欧美精品丝袜久久久中文字幕| 91九色蝌蚪在线| 国产一级揄自揄精品视频| 依人在线免费视频| 4480yy私人影院高清不卡| 日韩欧乱色一区二区三区在线| 国模 一区 二区 三区| 免费在线观看你懂的| 久久久久亚洲av无码麻豆| 尤物tv国产一区| 中文字幕日韩一区二区三区不卡| 亚洲一区色图| 久久精品夜夜夜夜夜久久| 亚洲特级片在线| 免费久久精品| 日韩中文字幕网址| 女生裸体视频一区二区三区| 日本私人网站在线观看| 国产情侣呻吟对白高潮| 国产成人a人亚洲精品无码| 成年人视频在线看| 欧美亚洲韩国| 黄色资源在线观看| 都市激情国产精品| 午夜精品视频在线观看一区二区| 日本免费网站视频| 亚洲欧洲综合| 九九热在线视频观看这里只有精品| 全部孕妇毛片丰满孕妇孕| 国产伦精品一区二区三区视频痴汉| 国产福利一区二区三区视频| 国产精品大陆在线观看| 欧美一区二区.| 日韩激情电影免费看| 欧美黑人一级爽快片淫片高清| 久久久久久少妇| 久久一二三四区| 在线观看国产精品淫| 3751色影院一区二区三区| 97精品国产99久久久久久免费| 拍拍拍999自拍偷| 一区在线免费| av在线不卡免费观看| 日韩av网站在线播放| 啊v视频在线一区二区三区| 国产精品1区2区3区在线观看| 天天看天天干| 国产精品夜夜夜爽张柏芝| 99热这里只有精品免费| 亚洲女爱视频在线| 无码播放一区二区三区| 成人91在线| h网站在线免费观看| 国产免费黄色片| 手机免费观看av| 老司机精品视频在线观看6| 中文字幕+乱码+中文字幕明步| 国产亚洲成精品久久| 国产精品成人一区二区网站软件| 国产一区二区久久精品| 国产国产精品人在线视| 九色91popny| 亚洲激精日韩激精欧美精品| 肥臀熟女一区二区三区| 国产最新精品精品你懂的| 久久尤物视频| 国产成人香蕉在线视频网站| 成年人网站91| 欧美午夜精品电影| 日韩精品极品视频在线观看免费| 久久久久久久久久av| 人妻丰满熟妇av无码区| 国产亚洲高清在线观看| 欧美影院在线播放| 宅男网站在线免费观看| 最新欧美色图| 久久精品av麻豆的观看方式| 伊人www22综合色| 最全影音av资源中文字幕在线| 国产又爽又黄又舒服又刺激视频| 岳乳丰满一区二区三区| 成人免费看视频网站| 麻豆久久一区二区| 99成人在线视频| 丁香花五月激情| 亚洲性色视频| 羞羞视频在线观看免费| www日韩av| 一本久久综合亚洲鲁鲁五月天| 精品日产一区2区三区黄免费| 国精产品一区一区二区三区mba| 香蕉国产精品偷在线观看不卡| 亚洲伊人成人网| 韩国主播福利视频一区二区三区| 91精品国产乱码久久久久久久| 国产另类ts人妖一区二区| 日本a一级在线免费播放| 中文在线永久免费观看| 精品国产露脸精彩对白| 国产免费一区二区三区四在线播放| 亚洲福利国产| 日本欧美肥老太交大片| 日韩美女一区| 欧美精品九九| 日韩你懂的在线播放| 污视频免费在线看| 欧美日本一道本| 欧美成人亚洲成人| 国产亚洲精品久久久久久牛牛| 免费在线视频观看| 亚洲欧美成人网| 国产网站欧美日韩免费精品在线观看| 2021天堂中文幕一二区在线观| 在线尤物九色自拍| 国产精品手机在线观看| 精品免费视频一卡2卡三卡4卡不卡| 天天操,天天操| 亚洲精品国产综合区久久久久久久| 欧美日韩精品在线一区二区| 小日子的在线观看免费第8集| 成人成人成人在线视频| 国产日韩视频在线观看| 青青青手机在线视频| 麻豆亚洲av熟女国产一区二| 性生生活大片免费看视频| 激情成人开心网| porn亚洲| 成人在线观看免费视频| 视频一区二区精品的福利| 成人动态视频| 欧美日韩dvd在线观看| 国产日韩亚洲欧美综合| av免费在线观看网址| 欧美亚洲在线观看| 日韩中文字幕无砖| 亚洲一区网站| 亚洲成人套图| 一区二区三区四区中文字幕| 亚洲视频1区2区| 99aiav| 国产精品视频免费| 亚洲高潮无码久久| 日本dhxxxxxdh14日本| 三级福利片在线观看| 91大神精品| 亚洲免费成人av在线| 日韩综合av| 884aa四虎免费影库4h| 欧美性猛交xx乱大交| japanese国产精品| 日日躁夜夜躁白天躁晚上躁91| 中文字幕高清在线免费播放| 亚洲女优在线| 国产精品人人做人人爽人人添| 久久久午夜精品| 女同一区二区三区| 欧美丝袜一区二区| 暖暖视频在线免费观看| 日本少妇xxx| 日韩欧美另类在线| 国产精品果冻传媒| 日本我和搜子同居的日子高清在线| 中文字幕2区| 久久精品国产福利| 亚洲精品承认| 国产欧美日韩一区二区三区| 日韩免费va| 丰满大乳奶做爰ⅹxx视频| 久久久午夜精品理论片中文字幕| 91国产视频在线| 毛葺葺老太做受视频| 亚洲欧美自拍一区| 蜜桃免费在线| 国产一级片av| 老司机精品视频网站| 中老年在线免费视频| 亚洲黄在线观看| 日本午夜精品久久久| 国产精品玖玖玖| 国产精品精品软件男同| 久久99国产精品久久99果冻传媒| 成人av综合在线| 成人免费av在线|