真实的国产乱ⅩXXX66竹夫人,五月香六月婷婷激情综合,亚洲日本VA一区二区三区,亚洲精品一区二区三区麻豆

成都創(chuàng)新互聯(lián)網(wǎng)站制作重慶分公司

<四>1:全面掌握Const的用法

const怎么理解?
const修飾的變量不能夠在作為左值!!初始化完成后,值不能被修改!!

創(chuàng)新互聯(lián)公司專業(yè)為企業(yè)提供孟連網(wǎng)站建設(shè)、孟連做網(wǎng)站、孟連網(wǎng)站設(shè)計(jì)、孟連網(wǎng)站制作等企業(yè)網(wǎng)站建設(shè)、網(wǎng)頁設(shè)計(jì)與制作、孟連企業(yè)網(wǎng)站模板建站服務(wù),10余年孟連做網(wǎng)站經(jīng)驗(yàn),不只是建網(wǎng)站,更提供有價(jià)值的思路和整體網(wǎng)絡(luò)服務(wù)。

C 和C++中const 的區(qū)別?

在C程序中
test.c

const int a; 只定義,不做初始化(C中允許),如果不做初始化,那么后面就不能再賦值了.
在C語言中const修飾的量,可以不用初始化,這個(gè)不叫常量,叫做常變量,本質(zhì)還是變量,只是
不能作為左值被修改值了

例如1: 在.c的程序中
const int a=100;
int array[a]={}; 是不可以的, 因?yàn)閍不是常量,他還是個(gè)變量

例如2: 在.c的程序中

點(diǎn)擊查看代碼
const int a=100;
int *p=(int *)&a;
*p=300;
printf("%d %d %d \n",a ,*p,*(&a));//結(jié)果都為300
a只是在語法上保證了不能作為左值被修改,但是他內(nèi)存中的值是可以被修改的,例如通過指針.

在C++程序中
test02.cpp
const int b; 編譯報(bào)錯(cuò),在C++中const修改的就叫常量,定義的時(shí)候必須被初始化,由于是常量了
所以可以用來定義數(shù)組的長度,如下代碼
例如3: C++代碼
const int b=100;
int array[b]={};

例如4: C++代碼

點(diǎn)擊查看代碼
const int b=100;
int *p =(int *)(&b);
*p = 300;
print("%d %d %d",b,*p,*(&b));//打印結(jié)果是  100,300,100
這個(gè)結(jié)果為什么會(huì)和在C語言環(huán)境下的結(jié)果不一樣? 是因?yàn)镃和C++編譯器對(duì)待const的編譯處理方式不一樣,在C語言中,const修飾的仍然被當(dāng)做變量來編譯生成指令的 C++中.**出現(xiàn)的被const修飾的常量名,在編譯的過程中都會(huì)被常量的初始化給替換掉的**

所以上面 print("%d %d %d",b,*p,*(&b)); b 被替換成100, *(&b)會(huì)被編譯器優(yōu)化掉 也是100
同時(shí)b在內(nèi)存中的值被修改了,改成了300

注意
在C++中const 修飾同時(shí)被初始化的值是一個(gè)立即數(shù),那么他就是個(gè)常量,如下

點(diǎn)擊查看代碼
const int a = 100;
int  *p = (int *)(&a);
*p=300;
print("%d %d %d",a,*p,*(&a));//打印結(jié)果是  100,300,100
編譯過程中 a都會(huì)被替換成被初始化的立即數(shù)100

但是如果用一個(gè)變量來初始化const修飾的量,就不再是常量了,會(huì)退化成常變量,本質(zhì)上變成變量了 如下

點(diǎn)擊查看代碼
int   b=1;
const int a=b;
int arr[a]={};//這一行編譯報(bào)錯(cuò),因?yàn)閍已經(jīng)不再是常量了
int  *p = (int *)(&a);
*p=300;
print("%d %d %d",a,*p,*(&a));//打印結(jié)果是  300,300,300,由于a已經(jīng)不是常量了被退化成變量,這里就不再會(huì)被編譯替換了,打印的都是內(nèi)存中的值

網(wǎng)站題目:<四>1:全面掌握Const的用法
瀏覽地址:http://weahome.cn/article/dsoieej.html

其他資訊

在線咨詢

微信咨詢

電話咨詢

028-86922220(工作日)

18980820575(7×24)

提交需求

返回頂部