1. 程式人生 > >c++中int,和char的區別和特性。

c++中int,和char的區別和特性。

雖然談不上十分難懂或者十分重要,但是希望大家可以全面瞭解一下關於int 和char。
下面是轉載文章:
1.int型別和char型別的區別
比較下面三個定義式的區別:
int i = 1;
char i = 1;
char i = ‘1’;
int用來定義整型變數,char用來定義字元型變數,要清楚的知道三個定義式的區別,可以比較它們在記憶體中的儲存形式。
資料在記憶體中是以二進位制形式存放的,而且是以補碼錶示的。一個正整數的補碼和該數的原碼(即該數的二進位制形式)相同;如果數值是負的,求補碼的方法是:將該數的絕對值的二進位制形式,按位取反再加1。這裡不對補碼的知識做過多的討論了。
int i = 1,則記憶體中的儲存形式為:0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1
在討論字元型資料以前,首先要明確一個“編碼”的概念,即約定一套規則,將a、b、#等符號用二進位制的形式表示出來,然後大家都遵守這個規則。美國資訊交換標準碼(ASCII)就是基於這樣的目的產生的。那麼我們現在來看下面兩個定義式:
char i = 1;
char i = ‘1’;
將一個整型常量放到一個字元變數中,實際就是把以該整型常量表示的ASCII碼放到記憶體單元中。(ASCII碼是以十進位制整數表示的)
將一個字元常量放到一個字元變數中,實際上並不是把該字元本身放到記憶體單元中去,而是把該字元的相應ASCII程式碼放到儲存單元中。
char i = 1;則i的ASCII就是1,在記憶體中就是0 0 0 0 0 0 0 1
char i = ‘1’;則i的ASCII就是字元‘1’的ASCII碼49,就是0 0 1 1 0 0 0 1
上面是int和char的區別,它們的聯絡就是儲存形式類似,就是一個是1個位元組,一個是2個位元組。int 可以用字元常量賦值,char也可以用整型常量賦值,它們之間的橋樑就是ASCII碼,因為字元是與ASCII一一對應的。

本文轉自,博主:宗師之路。(注:因原來是複製記錄在備忘錄裡的現在找不到原來博主的連線,希望原作者原諒,只是為了更多人方便學習。)