新聞中心
我們都知道,const的用法是非常靈活的。對(duì)于新手來說,還是很棘手的。建議大家看看這兩篇文章,可以結(jié)合本篇一起來看,《C++基礎(chǔ) 詳細(xì)介紹const的用法》和《C++初學(xué)者 const使用詳解》

創(chuàng)新互聯(lián)是一家集網(wǎng)站建設(shè),蒸湘企業(yè)網(wǎng)站建設(shè),蒸湘品牌網(wǎng)站建設(shè),網(wǎng)站定制,蒸湘網(wǎng)站建設(shè)報(bào)價(jià),網(wǎng)絡(luò)營(yíng)銷,網(wǎng)絡(luò)優(yōu)化,蒸湘網(wǎng)站推廣為一體的創(chuàng)新建站企業(yè),幫助傳統(tǒng)企業(yè)提升企業(yè)形象加強(qiáng)企業(yè)競(jìng)爭(zhēng)力。可充分滿足這一群體相比中小企業(yè)更為豐富、高端、多元的互聯(lián)網(wǎng)需求。同時(shí)我們時(shí)刻保持專業(yè)、時(shí)尚、前沿,時(shí)刻以成就客戶成長(zhǎng)自我,堅(jiān)持不斷學(xué)習(xí)、思考、沉淀、凈化自己,讓我們?yōu)楦嗟钠髽I(yè)打造出實(shí)用型網(wǎng)站。
const對(duì)很多人來說既陌生又熟悉.可以說很棘手的問題,有些地方很難理解.我在剛學(xué)C的時(shí)侯,對(duì)它的理解也是很模糊的.好像有點(diǎn)理解,但又說不出個(gè)所以然來.在此,就向大家分享,我一直以來對(duì)它的理解,如有不當(dāng)之處請(qǐng)指教.
const可以說一種常量的聲明的關(guān)鍵字,如const int a=2;變量a就是一個(gè)常變量,a的值不能被改變,這個(gè)改變是一定意義上的不能改變.而是說值的改變不能直接通過a這個(gè)符號(hào)來改變.但事實(shí)上,a的值是可能改變的.如下例子:
- #include
- int main()
- {
- const int a=3;
- int *p=(int*)&a;
- *p=100;
- printf("%d",a);
- return 0;
- }
這樣a的值就被改變了.
const也可以說一種只讀的關(guān)鍵字,如
- int integerArray[10]={0};
- const int* pointer=integerArray;
這里pointer是指向一個(gè)常變量的指針變量.pointer指向可能改變,但它所指向的變量的值就不能直接通過pointer來改變.如:
- *(p+1)=2;
這是不可以的.但如果有另外一個(gè)數(shù)組integerArray1,p=integerArray1是可以有.還有指向的變量不可改變,這種不可改變是一定意義的改變.如下例子:
- #include
- int main()
- {
- int array[10]={0};
- const int *pointer=array;
- int *pointer1=(int*)pointer;
- pointer1[0]=1;
- printf("%d",array[0]);
- return 0;
- }
以上例子說明了,不能直接通過pointer改變array,但可能間接通過pointer來改變array;
現(xiàn)在說一說有const聲明常指針,它的聲明不像聲明指向常量的指針形式.它的聲明形式為:int* const pointer; .常指針在編程的過程中它的指向不能改變.因此,常指針在聲明的時(shí)侯一定要給它賦初值.
否則,就不能直接給它賦值.但是,如果一定要給它賦上一定的值,是可以的.如下例子:
- #include
- int main()
- {
- int a=2;
- int* const p;
- int **p1=(int**)&p;
- *p1=&a;
- printf("%d",*p);
- return 0;
- }
經(jīng)過上面的介紹,相信大家對(duì)指向常量的常指針的聲明也不難寫出吧.它的聲明形式:cont int* const p;它就不用作過多的介紹了,指向常量的常指針就是指向常量的指針與常指針的復(fù)合了.
網(wǎng)站標(biāo)題:C語言入門 const使用的理解
文章URL:http://www.dlmjj.cn/article/djdesce.html


咨詢
建站咨詢
