欧美大屁股bbbbxxxx,狼人大香伊蕉国产www亚洲,男ji大巴进入女人的视频小说,男人把ji大巴放进女人免费视频,免费情侣作爱视频

歡迎來到入門教程網!

C語言

當前位置:主頁 > 軟件編程 > C語言 >

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

來源:本站原創(chuàng)|時間:2020-01-10|欄目:C語言|點擊: 次

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

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

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

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

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

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

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

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

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

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

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

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

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

上一篇:C/C++ 雙鏈表之逆序的實例詳解

欄    目:C語言

下一篇:C++ 線程(串行 并行 同步 異步)詳解

本文標題:C語言變量類型的深入分析

本文地址:http://mengdiqiu.com.cn/a1/Cyuyan/1379.html

網頁制作CMS教程網絡編程軟件編程腳本語言數(shù)據(jù)庫服務器

如果侵犯了您的權利,請與我們聯(lián)系,我們將在24小時內進行處理、任何非本站因素導致的法律后果,本站均不負任何責任。

聯(lián)系QQ:835971066 | 郵箱:835971066#qq.com(#換成@)

Copyright © 2002-2020 腳本教程網 版權所有