c 資料型別大小 150

2025-03-22 19:30:15 字數 3699 閱讀 1028

c++資料型別大小

1樓:網友

這個要看ansi/iso標準,肢運李c,c++都遵從這些標準,而不是ieee的標準,在ansi/iso標準中悄搜並沒有規定long double為多少位元組,在vc中, long double等同double,也就是8位元組,在c++ builder中為10位元組,在gcc中為12字歷遲節。

因此long double並不常用。

乙個c++程式 輸出資料型別長度

2樓:網友

上面大魔導師的說法不對,用這個例子就可以知道:

#include

#include

void main()

y; cout《說法,應該是28才對……

目前找到的最好的解釋為:

1) 結構體變數的首位址能夠被其最寬基本型別成員的大小所整除;

2) 結構體每個成員相對於結構體首位址的偏移量(offset)都是成員大小的整數倍,如有需要編譯器會在成員之間加上填充位元組(internal adding);

3) 結構體的總大小為結構體最寬基本型別成員大小的整數倍,如有需要編譯器會在最末乙個成員之後加上填充位元組(trailing padding)。

在你的例子中:

第乙個double型佔了8個位元組,接下來的char b的偏移量是8,可以被sizeof(char)整除,因此它佔用乙個位元組,char c偏移量是9,也佔乙個位元組,int d偏移量是10,不是sizeof(int)=4的整數倍,要將其放到偏移量為12的位置,因此編譯器在char c後填充了2個位元組,使偏移量為12,int d佔4位元組,接下來的short e的偏移量為16,滿足條件(2),short e佔用2個位元組,一共佔用了18個位元組,根據(3),編譯器在short e後填充6個位元組得到24位元組;

在我舉的例子中,接下來再加1到3個short型別變數仍然為24個位元組,但是如果新增4個short型別變數,則變為32個位元組了。

更詳細的全套說明在。

3樓:網友

double 8

char 1

char 1

int 4short 2

相加為源16

因為結構體會按4位元組。

對齊,所以每個變數至少佔4位元組。

所以double佔8位元組。

int和short各佔4位元組。

兩個char 各佔4位元組。

一共24位元組。

4樓:璩桂花東錦

資料型別範圍以bai

巨集定義的形式儲du存在這個標頭檔案中dao

c/c++ 資料型別有大小嗎?它佔儲存空間嗎?

5樓:網友

資料型別的大小,指的就是佔用記憶體空間的大小;

c/c++的基本資料型別,根據在不同的平臺佔用的記憶體空間也隨之變化;

通常情況下:char 1個位元組(固定) int 4個位元組(某些平臺2個位元組,通常16位平臺)

short int 2個位元組(某些平臺4個位元組) long int 4個位元組(某些平臺8位元組)

複合資料型別,比如陣列(根據陣列型別判斷佔用記憶體多少) 比如結構體與類(根據成員型別判斷其大小,但是與其排序也有關,即位元組對齊);

c/c++ 資料型別有大小嗎

6樓:物理公司的

資料型別的大小,指的就是佔用記憶體空間的大小;

c/c++的基本資料型別,根據在不同的配衫平臺佔用的記憶體空間也隨之變化;

通常情況下:char 1個位元組(固定) int 4個位元組(某些平臺2個位元組,通常16位平臺)

short int 2個位元組(某些平臺4個位元組) long int 4個位元組(某些平臺8位元組)

複合資料型別,比如陣列(根據陣列型別判斷佔用記憶體多少) 比如結構體與類(根據成員型別坦銀判斷其大小,但是與其排序也有關,即位元組培信腔對齊);

c++中每個資料型別各能存多大的數字?

7樓:網友

和作業系統,編譯系統都有關,最好查閱編譯器的文件。

還有乙個比較保險的方法是使用標準標頭檔案 (climits),再結合 sizeof。

比如:#include

#include

int main()

msdn只是關於ms的產品的,適用性不廣。

8樓:網友

系統不同不一樣的。查msdn吧,最權威的。

c++編寫乙個程式,輸出基本資料型別長度

9樓:網友

資料型別範圍以巨集定義的形式儲存在這個標頭檔案中#include

#include

using namespace std;

int main(){

cout<<"當前環境下的資料型別範圍";

cout<<"char :"<

float,double 沒有他們的巨集定義範圍。

在c++中就有哪些資料型別?佔多大記憶體?舉例…

10樓:測繪二哈

c++的基本資料型別。

型別名 長度(位元組) 取值範圍。

bool 1 false,true

char(signed char) 1 -128~127

unsigned char 1 0~255

short(signed short) 2 -32768~32767

unsigned short 2 0~65535

int(signed int) 4 -2147483648~2147483647

unsigned int 4 0~4294967295

long(signed long) 4 -2147483648~2147483647

unsigned long 4 0~4294967295

float 4 絕對值精度)

double 8 絕對值精度)

long double 8 絕對值精度)

由上面可以知道,c++的資料型別有bool(布林型)、char(字元型)、int(整型)、float(浮點型,表示實數)、double(雙精度浮點型,簡稱雙精度型)。

關鍵字unsigned和signed分別表示無符號和有符號。

11樓:

這個根據編譯器有不同,visual c++裡面:

unsigned int/int 4

unsigned short/short int 2long/unsigned long 4

char/unsigned char 1

flaot 4

double/unsigned double 8

c++中當所需要的資料長度超過了資料型別的長度怎麼辦

12樓:網友

c++ 的長整型 unsigned long long 應該能夠滿足你的要求。一般的機器sizeof(long)的值是4,sizeof(unsigned long long)的值是8

最大值18 446 744 073 709 551 616 = 2的64 次方。

13樓:節子不哭

用字串表示位數過多的資料,不是有大數相加這個經典的演算法嗎,就是這樣解決的,學習一下用大數相加來解決問題。

C語言不同資料型別怎麼轉換成同一資料型別的

大概有三種bai 情況 1.表示式du中有幾種可計算zhi 型別時,自動向dao 高 看齊,即自動把位數回少的型別通答過填加無效0而達到表示式中位數最多的型別,計算結果也是 高 型別。這種轉換不需程式設計師干預,也不損失資料。2.通過賦值自動轉換,即自動將右邊表示式計算結果的型別轉換為表示式左邊變數...

資料庫與C的資料型別轉換,C 與資料庫型別之間的轉換知多少

應該不存在這種事情 在資料庫裡表示字串型別用的就是 varchar,nvarchar,char nchar等等 而c 裡沒有這種型別,與他向替代的是string型別,如果出錯了,應該不會在這邊,你好好檢查一下其他型別呢 怎麼不匹配,我用過可以匹配的啊,具體東西帖出來看看 是不是有一種方式是 變數名....

C語言中基本資料型別包括哪些

c 語言的基本資料型別有如下四種 整型,說明符為int 字元型,說明符為char 浮點型 又稱實型 說明符為float 單精度 double 雙精度 空值型,說明符為void,用於函式和指標。為了滿足各種情況的需要,除了void型外,上述的三種型別前面還可以加上修飾符改變原來的含義。signed 表...