Re: [程設] 變數儲存大小

看板NTUE-CS104作者 (Danielle)時間12年前 (2011/12/01 08:03), 編輯推噓2(201)
留言3則, 3人參與, 最新討論串2/2 (看更多)
我的執行結果如下: 居然是long double最大? 可以問學長int 跟long int為什麼會一樣大? int 32bits float 32bits double 64bits long int 32bits long long int 64bits long double 96bits long long double 64bits ※ 引述《pk873 (P.K)》之銘言: : 先提一個基本觀念 : 變數的資料型別會影響你所能存的最大與最小值 : 今天上課的時候 : 我一時忘沒想到有一個函式可以知道傳入值的空間大小 : sizeof(x); //x的位置可以放變數 字串 數字 : 函式今天王老大才剛上 不會的請面壁思過 謝謝!!! : 以下是我做的一個測試範例 : #include<iostream> : using namespace std; : int main(void){ : int integer_number=0; : float float_number=0; : double double_number=0; : long int long_int=0; : long long int long_long_int=0; : long double long_double=0; : //long long double long_long_double=0; //有註解的部分DEV C++ 才可編譯 : cout<<"int \t\t\t"<<sizeof(integer_number)*8<<"bits"<<endl; : cout<<"float \t\t\t"<<sizeof(float_number)*8<<"bits"<<endl; : cout<<"double \t\t\t"<<sizeof(double_number)*8<<"bits"<<endl; : cout<<"long int \t\t"<<sizeof(long_int)*8<<"bits"<<endl; : cout<<"long long int \t\t"<<sizeof(long_long_int)*8<<"bits"<<endl; : cout<<"long double \t\t"<<sizeof(long_double)*8<<"bits"<<endl; : //cout<<"long long double\t"<<sizeof(long_long_double)*8<<"bits"<<endl; : system("pause"); : } : 這支程式可以拿去編譯看看 : 會輸出你那台電腦 對於該資料型態的大小為多少bits : 至於階層會爆掉的部分 是因為overflow(超出有效的儲存值域) : 我應該不用贅述吧?? @@ -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 120.127.36.154

12/01 10:04, , 1F
goooogle it就會知道int看系統決定大小
12/01 10:04, 1F

12/01 12:24, , 2F
因為C++標準沒有規定int的大小 2~4byte都有可能
12/01 12:24, 2F

12/14 06:52, , 3F
我印象中是看電腦是32還是64的作業系統吧?
12/14 06:52, 3F
文章代碼(AID): #1EriHdGW (NTUE-CS104)
討論串 (同標題文章)
文章代碼(AID): #1EriHdGW (NTUE-CS104)