最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

C語言變量類型的深入分析

 更新時間:2017年07月06日 11:27:47   投稿:lqh  
這篇文章主要介紹了C語言變量類型的深入分析的相關(guān)資料,需要的朋友可以參考下

C語言是強類型語言,定義變量時必須聲明變量的類型,賦值的時候也只能是同種類型變量賦值。

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

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

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

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

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

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

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

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

順便說說,如何理解多級指針。例如int **ptr;

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

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

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

相關(guān)文章

最新評論

陆河县| 蒙山县| 长寿区| 乌兰察布市| 阿拉善盟| 仁怀市| 通州区| 新晃| 安阳县| 乡宁县| 和静县| 当雄县| 察隅县| 九寨沟县| 特克斯县| 竹北市| 类乌齐县| 商南县| 安义县| 盖州市| 静宁县| 连州市| 浠水县| 宁国市| 英吉沙县| 湘潭市| 黎城县| 龙门县| 万盛区| 台北县| 二连浩特市| 阜城县| 新郑市| 响水县| 历史| 安庆市| 合阳县| 清丰县| 威远县| 千阳县| 彩票|