資料型別,指標,佔用的位元組數
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 版權宣告:本文為博主原創文章,轉載請附上博文連結!