C 中,int,char,double,這宣告的用法有何區別?如何正確選擇使用

2021-04-20 14:01:37 字數 5151 閱讀 6690

1樓:匿名使用者

char 是指字元型別,佔一個位元組內

存空間int 是指整型資料,佔四個位元組記憶體內空間double是指雙精度浮點

容型資料,佔八位元組記憶體空間

在程式設計中,根據使用的資料要求進行變數定義,選擇合適的變數型別,如:

char choice ; //定義一個字元cout << "input a choice (0-9):" ;

cin >> choice ; //這裡要求輸入一個字元0-9,所以,定義成char型別較好。 當然也可以定義成int型別,如:

int choice ;

cout << "input a choice (0-9):" ;

cin >> choice ;

int age ; //年齡當然用整型變數合適int n;

如果需要用到小數,就使用double,如:

double money;

double distance ; //計算兩點間的距離

2樓:匿名使用者

宣告方法bai相同,只是du每一個型別都有自己表達的數zhi據dao範圍

int 只能表示整回數

char 表示字元

double表示浮點數,即

答帶小數點的數

在輸入的時候使用不同的標識,比如int 用scanf("%d", &a);char用%c,char陣列用%s,double用%lf

在c++中定義時int和double有何區別

3樓:大野瘦子

1、型別不同

int 和 double 雖然都是基本資料型別,但 int 是整形, double 是浮點型。

2、在計算中的儲存方式不同

int在32位計算機中佔4個位元組,這4個位元組的在記憶體中存放的順序為低位元組存在低地址,高位元組存在高地址。

double是64位的,在儲存方式上都是遵從ieee的規範,其遵從的是 ieee r64.53。

c\c++中int、double等資料型別範圍的理解

例項**:

short sia = -32760;

short sib = (-32760 + 32768) % 65536 - 32768;

printf("not overflow\n");

printf("sia = %hd\n", sia);

printf("sib = %hd\n", sib);

sia = -32769;

sib = (-32769 + 32768) % 65536 - 32768;

printf("\noverflow\n");

printf("sia = %hd\n", sia);

printf("sib = %hd\n", sib);

sia = 32768;

sib = (32768 + 32768) % 65536 - 32768;

printf("\noverflow\n");

printf("sia = %hd\n", sia);

printf("sib = %hd\n", sib);

執行結果:

說明:1、在賦值操作時,如sia = -32769,-32769是先作為一個常量值存放在記憶體中,這個數值是沒有越界的概念的,就是二進位制值,只是在賦值操作時才進行了對應的資料轉換;

2、從執行結果可見,該處理機制對資料溢位和不溢位得到的結果都是適用的;

3、聯想資料閉環迴圈,如程式中32768,超過short型上限,其溢位一個數,作為一個資料閉環,則直接跳轉到了-32768,也就是short型下限值。

4樓:匿名使用者

int 和 double 都是基本資料型別, int 是整形, double 是浮點型。

1.int 型變數佔用的儲存空間和機器字一樣大,即 32位系統中是 4個位元組; 64位系統中是 8個位元組;

而 double 型變數 一般佔用8位元組,double 型變數佔用的儲存空間不會小於 int 型變數。

2.double 型表示的值範圍要比 int 表示的值範圍大,且從 double 值轉換到 int 值,會進行四捨五入,從而有精度損失。

擴充套件資料

一整形1.整形有char、short、int、long、long long,這5個也預設為signed xx ;

規則:short至少16位;int至少和short一樣;long至少32位,且至少和int一樣長;long long至少64位,且至少和long一樣長。

其中,後面4個都有無符號變體。unsigned short、unsigned int、unsigned long、unsigned long long.

注意,unsigned本身是unsigned int的縮寫。

可以看到,在32位和64位計算機上,對於整形唯一不同的就是int和指標的大小,其中32位計算機上int佔2位元組,64位上佔4位元組。指標大小和int大小相同。

2.wchar_t

char是8位字元型別,最多隻能包含256種字元,許多外文字符集所含的字元數目超過256個,char型無法表示。

wchar_t資料型別一般為16位或32位.

總之,wchar_t所能表示的字元數遠超char型。

標準c++中的wprintf()函式以及iostream類庫中的類和物件能提供wchar_t寬字元型別的相關操作。

3.++11新增型別:char16_t和char32_t

char16_t:16位無符號->字首u表示

char32_t:32位無符號->字首u表示

二、浮點型

浮點有3個,float、double、long double

規則:float至少4位元組;double至少6位元組,且不少於float;long double至少和double一樣多。

通常float32位,double64位,long double80、96或128位。我在vs2013上測到long double位64位。

參考資料

5樓:小澈

在c++中,int和double有以下幾個區別:

1、型別區別:

int是定義的整型資料,如int a 則a的值只能是整型,比如a=3。

double雙精度浮點數,就是有小數點的數。

2、在計算中的儲存方式:

int在32位計算機中佔4個位元組,這4個位元組的在記憶體中存放的順序為低位元組存在低地址,高位元組存在高地址。

double是64位的,在儲存方式上都是遵從ieee的規範,其遵從的是 ieee r64.53。

在記憶體中的儲存主要分成三部分,分別是:

符號位(sign):0代表正數,1代表負數

指數位(exponent):用於儲存科學計數法中的指數部分,並且採用移位儲存方式

尾數位(mantissa):用於儲存尾數部分

3、表達範圍:

int:在32/64位系統中都是32位,取值範圍為-2147483648~+2147483647,無符號情況下表示為0~4294967295。

double:有效數字為15-16,數值範圍為-1.7*10(-308)~1.7*10(308);

6樓:匿名使用者

int是一種型別——整數型別,例如:1,2,3,~~~

double也是一種型別——雙精度浮點數型別,例如:1.203156

7樓:沒有響應

int是整數 double是浮點數也就是有小數點的書

8樓:匿名使用者

int代表只能是整數,double是雙精度浮點數u,也就是小數

9樓:

定義時為int分配4個位元組儲存整數(32位),8個位元組給double儲存實數

c語言當中int,float,double,char這四個有什麼區別?

10樓:加百列

區別在以下bai方面:

du一、定義方面:

1、int為整數型,zhi用於定義整dao數型別的資料 。

2、float為單

內精度浮點型,能準確到容小數點後六位 。

3、double為雙精度浮點型,能準確到小數點都十二位 。

4、char為字元型,用於定義字元型別的資料。

二、記憶體佔據:

1、int 的記憶體大小是4 個byte。

2、float 記憶體大小是4 個byte。

3、double 的記憶體大小是8 個byte。

4、char 的記憶體大小是1 個byte。

基本資料型別表如下:

三、表示的資料範圍:

1、int:數的範圍為-(2的31次方-1)到(2的31次方-1),數字為-2 147 483 647~2 147 483 647。

2、double:表示的範圍為+1.111111111111111111111*2^1023(1.後面52個1)為1.7*10^308。負數亦然。

3、float:整數極限為3.4*10^38,負數亦然。

4、char:-128- 127。

11樓:小安無敵

int為整數型,用於定義整數型別的資料

float為單精度浮點型,能準確到小數點後六位double為雙精度浮點型,能準確到小數點都十二位char為字元型,用於定義字元型別的資料

12樓:長孫凌文

一個變數再定義是型別就固定了。如int

a在定義域內a都是整形。當然可以用強制型別轉內換來改變。你容可以用sizeof()來測任意一個變數的長度。

如對於int

a;sizeof(int)=2,sizeof(a)=2;表示int性和a都是2位元組資料。

一般int

char都是2位元組。

float就是單精度其範圍是10e-38到10e38,有效位為6-7.(e是指數意思)

double就是雙精度其範圍是10e-308到10e308,有效位15-16.

long

doule是長雙精度其範圍是10e-4931到10e4931.有效位18-19.

%7表示輸出這個資料的長度為7,一般是為了資料顯示整齊。

如我輸出1234,只有4位,那我就要在自動不3各空格。

當資料超出預定位寬時好像是按實際位輸出,這個有點記不清了。

希望我的回答對你有幫助

C 中5c 10c什麼意思,c 中 5c 10c什麼意思

問題分析 5c表示輸出一個字元,這個字元要佔用5個字元的空間,不足部分在前面補上空格。也就是輸出4個空格和這個字元。同樣 10c輸出9個空格和一個字元。問題擴充套件 代表意思有 兩種意思 1 格式化字串輸出 2 整數取餘 例項如下 1 目前printf支援以下格式的輸出,例如 printf c a ...

C 中的用法,C 中new的用法

除了樓上說的 還有 引用 和 取地址 的含義int a int b a 上述兩行語句執行完之後,a b表示同一個變數,對其中一個的操作相當於對另一個的操作 int a int b a 則b中儲存的是a的地址。對 b 的任何操作相當於對a的操作。表示引用,就是物件的另一個名字,例如 int i 10 ...

C 中pow函式,C 中pow(x,y)函式怎麼用?最好給舉個例子

2型別是整型,0.5屬於浮點數,而你的函式宣告裡面第一個引數是浮點數,第二個引數是整型的,int轉float double可以隱式轉換,編譯器允許這種轉換,但是float double不能隱式轉換成int,這樣可能會造成資料丟失,編譯器不允許,除非你強制轉換 在vc 6.0中原型為double po...