国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁(yè) > 編程 > C > 正文

C語(yǔ)言變量類(lèi)型的深入分析

2020-01-26 14:01:52
字體:
來(lái)源:轉(zhuǎn)載
供稿:網(wǎng)友

C語(yǔ)言是強(qiáng)類(lèi)型語(yǔ)言,定義變量時(shí)必須聲明變量的類(lèi)型,賦值的時(shí)候也只能是同種類(lèi)型變量賦值。

一。變量的類(lèi)型告訴編譯器怎么處理這個(gè)變量的數(shù)據(jù)。

         雖然c語(yǔ)言是強(qiáng)類(lèi)型語(yǔ)言,但是不同類(lèi)型的變量通過(guò)類(lèi)型轉(zhuǎn)換也可以賦值,甚至指針變量可以轉(zhuǎn)化為int類(lèi)型,轉(zhuǎn)化為char類(lèi)型。從本質(zhì)上來(lái)說(shuō),變量類(lèi)型只是告訴編譯器應(yīng)該怎么處理這個(gè)變量,所以不同變量可以通過(guò)顯示類(lèi)型轉(zhuǎn)換來(lái)賦值。理解這點(diǎn)對(duì)我們理解指針的轉(zhuǎn)型非常重要。例如

int a = 10; int **ptr = &a; int b = (int)(*ptr); // *ptr是一個(gè)指針,但是通過(guò)轉(zhuǎn)型為int,我們可以將其賦值給b。 

如果不明白變量類(lèi)型的本質(zhì),那么會(huì)以為第三行代碼是錯(cuò)誤的。為什么可以這樣賦值呢?(*ptr)是一個(gè)指針,可是指針也有值,它的值是一個(gè)地址,地址其實(shí)就是無(wú)符號(hào)整數(shù)。所以我們通過(guò)類(lèi)型轉(zhuǎn)換變成int,這個(gè)變量在內(nèi)存中的數(shù)據(jù)沒(méi)有變化,只是對(duì)它的解析變化了。如果是作為指針類(lèi)型,那么數(shù)據(jù)是作為指針來(lái)解析;如果作為int型,那么數(shù)據(jù)是作為int來(lái)解析。事實(shí)上,我們還可以將其賦值給char類(lèi)型。將其轉(zhuǎn)型為char,那么對(duì)它的解析就是char類(lèi)型了,只取數(shù)據(jù)的一個(gè)字節(jié)解析成char類(lèi)型,賦值給ch。

char ch = (char)(*ptr); // 有些編譯器會(huì)報(bào)錯(cuò),將其改成(char)(int)(*ptr)就可以修正錯(cuò)誤了。

二。變量的類(lèi)型告訴編譯器要分配多少內(nèi)存空間。

        在定義一個(gè)變量時(shí),變量類(lèi)型告訴編譯器要分配多少內(nèi)存空間來(lái)存儲(chǔ)變量。

char ch; // 1B int  i;  // 4B long l;  // 4B float f; // 4B double; // 8B 

順便說(shuō)說(shuō),如何理解多級(jí)指針。例如int **ptr;

當(dāng)我們遇到二級(jí)指針,三級(jí)指針時(shí),總是弄不明白各級(jí)指針是什么意思。有一種方法比較容易多級(jí)指針,將指針作為數(shù)組來(lái)理解。一級(jí)指針是一維數(shù)組,二級(jí)指針是二維數(shù)組,三級(jí)指針是三維數(shù)組,依此類(lèi)推。當(dāng)然有些時(shí)候不能這么理解,那就要具體問(wèn)題具體分析了。

int *ptr1;   // 一維數(shù)組 int **ptr2; // 二維數(shù)組 int ***ptr3; // 三維數(shù)組 

感謝閱讀,希望能幫助到大家,謝謝大家對(duì)本站的支持!

發(fā)表評(píng)論 共有條評(píng)論
用戶(hù)名: 密碼:
驗(yàn)證碼: 匿名發(fā)表

圖片精選

主站蜘蛛池模板: 富锦市| 江川县| 利川市| 眉山市| 寿阳县| 精河县| 黄冈市| 灯塔市| 乐陵市| 嘉峪关市| 蒙阴县| 屏东市| 灵石县| 梓潼县| 封丘县| 鹤岗市| 元朗区| 海口市| 乐清市| 维西| 西畴县| 怀宁县| 广平县| 海阳市| 阳江市| 改则县| 西吉县| 嘉祥县| 诸暨市| 曲沃县| 武川县| 石泉县| 贡山| 临清市| 白河县| 奉化市| 翁牛特旗| 丘北县| 江安县| 阳朔县| 宁阳县|