无码av一区二区三区无码,在线观看老湿视频福利,日韩经典三级片,成 人色 网 站 欧美大片在线观看

歡迎光臨散文網(wǎng) 會(huì)員登陸 & 注冊(cè)

【C語言】數(shù)組挖的坑,中招的舉個(gè)爪!

2021-09-19 02:30 作者:秋名山西  | 我要投稿

從大學(xué)修過C語言基礎(chǔ)這門課后,每每看到諸如變量、數(shù)組、結(jié)構(gòu)體這些東西時(shí),總覺得自己已經(jīng)掌握了,沒必要重點(diǎn)學(xué)習(xí)。知道今天看到QQ群有位老鐵跑出這么個(gè)問題,如下圖:

這個(gè)程序printf出來為啥是0000?

仔細(xì)瞅了瞅,發(fā)現(xiàn)這個(gè)問題貌似觸及到了我的知識(shí)盲區(qū)。于是跑去查了下資料,這里說一下我的成果:

首先,要區(qū)分兩個(gè)概念,那就是左值與右值。何謂左值,?賦值運(yùn)算符左邊的即為左值,何謂右值,賦值運(yùn)算符右邊的稱為右值。可以表示為:左值 = 右值。左值呢一般為具體的某塊內(nèi)存,右值則是內(nèi)存中存儲(chǔ)的數(shù)據(jù)。

然后回到我們的問題中,在程序中,主函數(shù)將數(shù)組mac的首地址傳給func函數(shù),程序原作者希望調(diào)用func函數(shù),完成將字符串"1234"賦值給數(shù)組mac的前四個(gè)元素的工作。為什么程序最終沒能實(shí)現(xiàn)該目的呢?我認(rèn)為有如下幾個(gè)原因:

1、c語言規(guī)定,對(duì)數(shù)組的操作不能整體進(jìn)行,必須單個(gè)元素操作。

2、數(shù)組的地址是由編譯器編譯時(shí)直接給定的,數(shù)組變量的變量名與此地址直接綁定,也就說數(shù)組mac的首地址是一個(gè)常量,它不能作為左值,即不能對(duì)數(shù)組的地址進(jìn)行變更,強(qiáng)行變更將會(huì)導(dǎo)致變更失敗。

所以這個(gè)程序中,強(qiáng)行將字符串"1234"的首地址賦值給mac的首地址(常量),就導(dǎo)致了最終運(yùn)行結(jié)果的失敗。

【C語言】數(shù)組挖的坑,中招的舉個(gè)爪!的評(píng)論 (共 條)

分享到微博請(qǐng)遵守國家法律
阜阳市| 马山县| 辽宁省| 南召县| 金乡县| 门头沟区| 临湘市| 阿克苏市| 长乐市| 新龙县| 峨山| 克什克腾旗| 革吉县| 尼玛县| 岗巴县| 涟源市| 乃东县| 陆河县| 会宁县| 彩票| 闵行区| 泰和县| 溆浦县| 崇信县| 阿尔山市| 肃南| 焦作市| 辽阳县| 新疆| 南皮县| 屏东市| 吴旗县| 通化县| 界首市| 云林县| 平陆县| 阳高县| 浦江县| 方山县| 凤山市| 阜康市|