首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> C語言 >> 關於C語言

C語言基礎:使用 sizeof 運算子獲取基本資料類型佔用的位元組長度

     編輯:關於C語言

前言

在 C 語言中,不同資料類型佔用的記憶體大小可能因編譯器與平台而異。sizeof 運算子可在編譯時期靜態計算類型或變數所佔用的位元組數,是撰寫可移植程式碼的重要工具。

程式碼實作

#include <stdio.h>

int main() {
    printf("在我的電腦上,各種基本類型所佔用的位元組長度:\n");
    printf("int     佔用的位元組長度:%zu\n", sizeof(int));
    printf("long    佔用的位元組長度:%zu\n", sizeof(long));
    printf("char    佔用的位元組長度:%zu\n", sizeof(char));
    printf("float   佔用的位元組長度:%zu\n", sizeof(float));
    printf("double  佔用的位元組長度:%zu\n", sizeof(double));

    return 0;
}

關鍵點說明

  • sizeof 為運算子而非函數:使用時可加括號也可不加(如 sizeof int),但對類型名稱建議加括號。
  • 格式指定符:sizeof 回傳 size_t 類型,應使用 %zu 輸出(C99 標準),原始碼使用 %d 在 64 位元系統可能導致輸出錯誤。
  • 平台相關性:32 位元系統下 int 與 long 通常為 4 位元組;64 位元 Linux 下 long 為 8 位元組,Windows 為 4 位元組。

常見輸出範例(64 位元 Linux)

int     佔用的位元組長度:4
long    佔用的位元組長度:8
char    佔用的位元組長度:1
float   佔用的位元組長度:4
double  佔用的位元組長度:8

進階應用

除基本類型,sizeof 也可用於陣列、結構體、指標等:

int arr[10];
printf("陣列大小: %zu\n", sizeof(arr));        // 40 (10 * sizeof(int))
printf("指標大小: %zu\n", sizeof(arr));        // 8 (64位元系統指標大小)
printf("結構體大小: %zu\n", sizeof(struct A)); // 含記憶體對齊後的大小
  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved