新聞中心
當(dāng)用const進(jìn)行修飾時(shí),根據(jù)const位置的不同有三種不同效果。 判斷的標(biāo)準(zhǔn)是:const修飾誰(shuí),誰(shuí)的內(nèi)容就是不可變的。

成都創(chuàng)新互聯(lián)公司專注于翔安企業(yè)網(wǎng)站建設(shè),成都響應(yīng)式網(wǎng)站建設(shè)公司,商城開(kāi)發(fā)。翔安網(wǎng)站建設(shè)公司,為翔安等地區(qū)提供建站服務(wù)。全流程按需定制設(shè)計(jì),專業(yè)設(shè)計(jì),全程項(xiàng)目跟蹤,成都創(chuàng)新互聯(lián)公司專業(yè)和態(tài)度為您提供的服務(wù)
const修飾指針變量時(shí)候有三種情況:
1 const 修飾取值操作(修飾星號(hào)*)
int a = 10;
const int* p1 = &a;
const int *p2 = &a;
int const* p3 = &a;
int const *p4 = &a;
以上兩種指針p1,p2,p3,p4的聲明等價(jià),當(dāng)const在星號(hào) * 前面,此時(shí)可以理解為const修飾的是星號(hào)和變量 (*p)(指針的取值操作),限定了指針p1-p4取值操作是只讀的,不能修改,但是p1-p4指針變量是可以修改的。
*p1 = 100; //error 取值時(shí)是只讀的,無(wú)法修改a的值
p1 = NULL; //不報(bào)錯(cuò),指針的指向是可以更改的。
2 const 修飾指針變量
int* const p1 = &a;
int *const p2 = &a;
以上兩種聲明等價(jià),當(dāng)const在星號(hào) * 和變量名之間,可以理解為const修飾的是指針變量p1,p2,即指針p1和p2的值(指向)不能修改,但是p1,p2的取值操作時(shí)候的值可以修改。 聲明時(shí)必須初始化指針變量,一旦完成初始化就不能再指向其他地址。
*p1 = 100; //合法,此時(shí)a的值變?yōu)?00
p1 = NULL; //error,指針變量的指向不能修改
3 兩個(gè)const修飾
const int* const p1 = &a;
此時(shí)p1的指向不能修改,且p1的取值操作的值也不能修改
*p1 = 100; //error
p1 = NULL; //error
a = 100; //并不影響pi指向的a的值的修改
文章題目:C語(yǔ)言中const修飾的指針
網(wǎng)站地址:http://fisionsoft.com.cn/article/dhiisdi.html


咨詢
建站咨詢
