亚洲av成人无遮挡网站在线观看,少妇性bbb搡bbb爽爽爽,亚洲av日韩精品久久久久久,兔费看少妇性l交大片免费,无码少妇一区二区三区

  免費注冊 查看新帖 |

Chinaunix

  平臺 論壇 博客 文庫
最近訪問板塊 發(fā)新帖
查看: 5121 | 回復(fù): 0
打印 上一主題 下一主題

C/C++中的常量指針與指針常量 [復(fù)制鏈接]

論壇徽章:
0
跳轉(zhuǎn)到指定樓層
1 [收藏(0)] [報告]
發(fā)表于 2011-09-15 11:26 |只看該作者 |倒序瀏覽
常量指針

常量指針是指向常量的指針,指針指向的內(nèi)存地址的內(nèi)容是不可修改的。

常量指針定義“const int *p=&a;”告訴編譯器,*p是常量,不能將*p作為左值進行操作。但這里的指針p還是一個變量,它的內(nèi)容存放常量的地址,所以先聲明常量指針再初始化是允許的,指針也是允許修改的,例如:

int a=0,b=1;
const int *p;  //聲明常量指針p
p=&a;            //p指向a
p=&b;            //修改指針p讓其指向b,允許
*p=2;            //不允許

指針常量

指針常量是指針的常量,它是不可改變地址的指針,但可以對它所指向的內(nèi)容進行修改。

指針常量定義"int *const p=&a;"告訴編譯器,p是常量,不能作為左值進行操作,但允許修改其指向的內(nèi)容,即*p是可修改的。指針常量必須在聲明的同時對其初始化,不允許先聲明一個指針常量隨后再對其賦值,這和聲明一般的常量是一樣的,例如:

int a=0,b=1;
int *const p1=&a;
int *const p2;       //不允許,必須對其初始化
p2=&b;                 //不允許,p2是常量不允許作為左值
*p1=2;                 //允許修改指針*p1的值

如果指針作為函數(shù)參數(shù),當(dāng)我們不想被調(diào)用函數(shù)隨意修改參數(shù)指針而只是想修改參數(shù)指針指向的內(nèi)容時,我們常把指針常量作為參數(shù)。例如:

有兩個整形變量a,b,我們寫個函數(shù)用于交換a,b的值,利用指針作為形參,函數(shù)修改參數(shù)指針的值是我們不希望的,這時可將參數(shù)設(shè)為指針常量,如果函數(shù)對指針修改編譯是將報錯。

void Exchange(int *const a,int *const b)
{
    int temp;
    temp=*a;
    *a=*b;
    *b=temp
}

事實上,如果函數(shù)不修改參數(shù)本身的值,我們一般對參數(shù)加上const限定,這也是提高代碼質(zhì)量的一個小技巧,在類的方法中,如果方法不修改類屬性的值,我們也常將方法加上const。
來源:http://www.fj3344.com
您需要登錄后才可以回帖 登錄 | 注冊

本版積分規(guī)則 發(fā)表回復(fù)

  

北京盛拓優(yōu)訊信息技術(shù)有限公司. 版權(quán)所有 京ICP備16024965號-6 北京市公安局海淀分局網(wǎng)監(jiān)中心備案編號:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年舉報專區(qū)
中國互聯(lián)網(wǎng)協(xié)會會員  聯(lián)系我們:huangweiwei@itpub.net
感謝所有關(guān)心和支持過ChinaUnix的朋友們 轉(zhuǎn)載本站內(nèi)容請注明原作者名及出處

清除 Cookies - ChinaUnix - Archiver - WAP - TOP