在C語言中,檢測某一個數據類型所占據的内存大小,也即:所占據的内存中的字節數,可以使用一個關鍵字來檢測,sizeof,這個關鍵字,是一個運算符,與加( )減(-)乘(*)除(/)是一樣的,都屬于運算符。
我們可以寫一段程序,來檢測各個數據類型,所占據的内存中的字節個數,程序代碼如下圖所示:
C語言示例代碼
上述C語言程序中,第23行和第24行,就是在計算各個數據類型所占據的字節數,使用了sizeof關鍵字。最終,計算出來的結果如下圖所示:
C語言示例代碼的執行結果
我們可以看到,上述結果就是示例代碼中,各個數據類型所占據的字節數。
變量a是整型(int),占據4個字節;變量b是短整型(short),占據2個字節;變量c是字符型(char),占據1個字節;變量e是單精度浮點型(float),占據4個字節;變量f是雙精度浮點型(double),占據8個字節;變量g屬于自定義的一個數據類型,來源于結構體stu,它所占據的字節數是16
其中,結構體變量g的總體占據的字節數,本來應該是:sizeof(int) sizeof(char) sizeof(double) = 4 1 8=13,但是上面程序所示結果為16,這是因為有一個“内存地址對齊”的概念,比如:第一個int型變量的起始位置為0x0000,那麼第二個char類型變量的起始位置是0x0004,第三個double類型的變量起始位置是0x0008,而double型變量的結束位置是:0x000F,所以,整個結構體變量g的内存位置是:0x0000到0x000F,加起來一共是16個字節數。
在不同的系統上,有的數據類型所占據的字節數不一樣。比如,在32位系統上,int型數據所占據的字節數是4,long類型數據所占據的字節數是4;在64位系統上,int型數據占據4個字節,long類型數據占據8個字節;在16位系統上,int型數據占據2個字節,long類型數據占據4個字節。
獲取方式:
1.在你手機的右上角有【關注】選項,或點擊我的頭像,點擊關注!(關注我)
2.關注後,手機客戶端點擊我的主頁面,右上角有私信,請私信發我:編程
電腦已經設置好了關鍵詞自動回複,自動領取就好了!這幾天上萬個消息,真的回複不過來,所以回複的時候請注意關鍵詞!
其實做為一個開發者,有一個學習的氛圍跟一個交流圈子特别重要這裡請私信我“編程”不管你是小白還是大牛歡迎入住大家一起交流成長。小編會在裡面不定期分享幹貨源碼,包括我精心整理的一份c 零基礎教程。歡迎各位感興趣的的小夥伴。
學習思路:
學習資料:
,
更多精彩资讯请关注tft每日頭條,我们将持续为您更新最新资讯!