1. 程式人生 > >資料型別,指標,佔用的位元組數

資料型別,指標,佔用的位元組數

char佔1位元組,short佔 2 位元組,int 、float、long 都佔 4 位元組,double 佔8 位元組

指標長度和地址匯流排有關。因為指標記錄的就是一個地址,那麼32位的就是4位元組,64位的就是8位元組。

發現一個問題,以下程式碼是在win10 64位系統下跑的,理應來說int佔8個位元組,後來我想錯了;我建立的工程是win32控制檯應用,意味著編譯器就是32位的--“int佔多少個位元組既由編譯器決定,也由CPU或虛擬機器或作業系統決定,但歸根結底是由編譯器決定。”

64位win10下,codeblocks win32 控制檯下

#include "iostream" using namespace std;

int main() { double *p = NULL; cout<<sizeof(char)<<endl; cout<<sizeof(short)<<endl; cout<<sizeof(int)<<endl; cout<<sizeof(float)<<endl; cout<<sizeof(long)<<endl; cout<<sizeof(double)<<endl; cout<< sizeof(char *) << sizeof(short *) << sizeof(int *) << sizeof(p) << sizeof(double *)<<endl; return 0; }

結果為:

1 2 4 4 4 8 44444

由上可知,char佔1位元組,short佔 2 位元組,int 、float、long 都佔 4 位元組,double 佔8 位元組,任意型別的指標都佔4個位元組; ---------------------  作者:Junekiler  來源:CSDN  原文:https://blog.csdn.net/junekiler/article/details/52518336  版權宣告:本文為博主原創文章,轉載請附上博文連結!