學點 C 語言(15): 資料類型 – sizeof(檢測類型大小)

來源:互聯網
上載者:User
擷取類型大小的變數最好不是 int 類型, 而是 size_t 類型;

size_t 在 stdio.h、stddef.h 都有定義.

1. 擷取已知類型的大小:
#include <stdio.h>#include <stddef.h>int main(void){    char n = 2;    size_t size;    size = sizeof(char);    printf("%*u: char\n", n,size);    size = sizeof(unsigned char);    printf("%*u: unsigned char\n", n,size);    size = sizeof(short);    printf("%*u: short\n", n,size);    size = sizeof(unsigned short);    printf("%*u: unsigned short\n", n,size);    size = sizeof(int);    printf("%*u: int\n", n,size);    size = sizeof(unsigned);    printf("%*u: unsigned\n", n,size);    size = sizeof(long);    printf("%*u: long\n", n,size);    size = sizeof(unsigned long);    printf("%*u: unsigned long\n", n,size);    size = sizeof(long long);    printf("%*u: long long\n", n,size);    size = sizeof(unsigned long long);    printf("%*u: unsigned long long\n", n,size);    size = sizeof(float);    printf("%*u: float\n", n,size);    size = sizeof(double);    printf("%*u: double\n", n,size);    size = sizeof(long double);    printf("%*u: long double\n", n,size);    size = sizeof(wchar_t);    printf("%*u: wchar_t\n", n,size);        getchar();    return 0;}

2. 擷取類型大小可根據類型名, 也可根據變數名:

#include <stdio.h>int main(void){    int i;    double d;    printf("%u, %u\n", sizeof(i), sizeof(int));    printf("%u, %u\n", sizeof(d), sizeof(double));        getchar();    return 0;}

3. 對變數名(非類型名), sizeof 也可以不要括弧:

#include <stdio.h>int main(void){    int i;    double d;    printf("%u\n", sizeof i);    printf("%u\n", sizeof d);        getchar();    return 0;}

4. sizeof(陣列變數) 擷取的是數組大小(而非維數), 這和 Delphi 很不一樣:

#include <stdio.h>int main(void){    int nums[10];        printf("%u\n", sizeof nums);                /* 數組大小 */    printf("%u\n", sizeof(nums) / sizeof(int)); /* 數組維數 */            getchar();    return 0;}

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.