整型變數與字元型變數是否在任何情況下都可以互相代替?

時間 2025-05-31 23:25:12

1樓:茅新蘭遇夏

1.當然是不可以的。

解釋:char的範圍是盯和譁有符號-128127無符號0

int的範圍是-32768

所以只有當你表棚粗示的資料的值在它們的公共範圍之內是可以替換的,如果不在公共範圍之凱行內就不可以替換!

2樓:上帝來自地球

1全部1.當然是不可以的。

解釋:char的範圍是有符號-128 ~ 127無符號0 ~ 255int的範圍是-32768 ~ 32767所以只有當你表示的資料的值在它們的公共範圍之內是可以替換的,如果不在公共範圍之內就不可以替換!

3樓:追夢ren灰狼

int main()

當輸入1111q 時 當輸入11111q 時 當輸入111111q 時 當輸入1111111q 時。

結果是w113 結果是g113 結果是?13 結果是?13

所以整型變數與字元型變數之間的相互替換只有在整型變數的範圍之內!

還有當整型變數是 int c1時:

輸入111111q時 結果是113(此處113前面應該沒有定義內容,在ascii中空出來了,所以結果是113,以為輸入111114q時 結果是 換行符113);

輸入11111q時 結果是g113;

輸入111111111q時 結果是?13;

其他的你自己試試!

之所以能這樣,和補碼的知識有關!當輸入的值是1111時,因為chai的取值個數範圍0~~~256之間,所以1111-256*4=87;在ascii中對應w;而q轉換成數值時是113;

我知道的只有這麼多了,其他的你自己可一看看相關的書籍!

c語言中整型變數與字元型變數是否在任何情況下都可以互相代替?

4樓:勞秀芳冷衣

有時會出錯,因為它們的範圍不一樣,在vc++中整型佔4個位元組而字元型只佔乙個位元組,當把字元型當整型時沒問題。當把大於255的整型用作字元型時就有問題。

5樓:乙玉蘭德春

%d與%c中間沒有空格,也是可以輸出ch的。只要輸入的時候中間沒有空格即可。

例如輸入10c

則輸出c沒有問題的。

除非你**寫的:scanf("%d%c",&a,&ch);

但是輸入的時候整數和字元之間輸入了空格。

6樓:泉長征司月

字元型轉換成整型基本沒什麼問題,但反過來就可能會出問題了。因為在c語言中,整型一般是兩個位元組(int型兩個,long型4個,short

int型乙個),字元型為乙個位元組(無符號的為兩個),乙個位元組轉兩個沒問題,兩個轉乙個就可能出現溢位問題。比如。

chara=255,就會溢位,因為a表達的範圍只是-128~127

c++中,整型變數與字元變數是否在任何情況下都可以互相代替?

7樓:網友

不行的,char c1,c2的acsii碼是0~255,超過這個範圍就沒法用了。如。

int c1=256;

printf("%c",c1);

這樣的**是得不到輸出的。

8樓:

可以,如果將整型常量320賦值給整型變數c1,寫輸出語句printf("%c",c1);輸出的字元是`a`.(用320-255=65,65對應的是a)

9樓:花香人間

可以用整形代替字元型。

但是不能用字元型代替整形。會丟失精度,因為int型佔位元組》字元型。

10樓:網友

若用擴充套件的acsii碼應該可以,不過有的編譯器會報錯,或警告。

整型變數與字元變數是否在任何情況下都可以互相無條件等價?

11樓:網友

1全部不一定的。

一般情況下,是可以隨意轉換的,如」123「可以轉為數字」123「。但是有時候是不行的,如,字元」001「轉換為整形就是」1「,但是整型」1「轉為字串就是」1「,不是」001「。

如:字串」99999999999「(大於9個9),這個就不在整型int的範圍了,所以也是不行的。

12樓:葉子不改

是,但前提是在0-128之間。

整型變數與字元變數是否在任何情況下都可以互相代替

13樓:邗耘貴從丹

1全部這個事不是的由於整形數佔2個位元組,而字元型佔1個位元組,當整型數想字元型轉換時自動進行擷取造成數值丟失,而如果字元型想整型進行轉換時則不會出現丟失的現象,但這樣也就浪費了記憶體!

14樓:

char 只有乙個位元組 (最大正數:2^7-1) 而int 在win32中 是4個位元組 (最大正數:2^31-1)所以:

在你輸入的值小於2^7-1=127的時候是可以通用的 但是如果大於127就不可以通用。

否注意到a中元素的任意性和b中與之對應元素的。

15樓:愈清安荊鸞

1.當然是不可以的。

解釋:char的範圍是有符號-128

127無符號0

int的範圍是-32768

所以只有當你表示的資料的值在它們的公共範圍之內是可以替換的,如果不在公共範圍之內就不可以替換!

c++中整型變數和字元變數在任何條件下都可互相替換麼?

16樓:風龍一

1全部c++中的字元型比較特殊 它其實就是乙個8位的整形變數 即-2^7~2^7-1範圍內的整數 和int形的儲存方式是一樣的 它代表ascii碼所以用來表示字元 但實際上仍然是整數 所以可以和int long 等其他整數相互賦值 但是int是16位 long是32位 所以如果你用一給它們都賦100的話可以 但如果賦1000的話char型就要出問題了 因為超出它的取值範圍了。

所以 實際上字元型只是乙個範圍比較小的整形 你完全可以用它進行整形能進行的所有運算 可以和任何整形相互賦值 也可以將乙個整形變數按字元格式輸出 那麼就輸出它所代表的ascii碼所代表的字元。

17樓:網友

互相替換?什麼意思呢?你說的是整型與字元變數其中乙個通過型別轉換或者強制轉換賦值給另乙個變數,是這個意思嘛?

如果是那個意思,那麼不能!!

因為整型佔兩個位元組16位,而字元佔乙個位元組8位。

在整型強制型別轉換成字元的時候,是將整型變數的值的低8位擷取出來的!是有資料丟失的!

什麼是字元型變數,字元型變數是什麼

字元變數是存放字元常量的變數,其取值是字元常量,即單個字元。字元變數的型別說明符是char。定義形式 char 存放字元常量的變數,說明字元變數在記憶體中佔一個位元組。定義形式 char 識別符號1,識別符號2,識別符號n 例如 char c1,c2,c3,ch c1 a c2 b c3 c ch ...

字元變數與字串變數的區別,字元變數與字串變數的區別是什麼?

字元型別只有一個位元組,賦值用 號。而字串可以儲存多個字元,賦值要用 字元變數是存放字元常量的變數,其取值是字元常量,即單個字元。字元變數的型別說明符是char。字串 string 是由數字 字母 下劃線組成的一串字元。一般記為 s a1a2 an n 0 它是程式語言中表示文字的資料型別。在程式設...

整型變數是什麼

飛鷹 整型變數是一種計算機語言。在c語言中,整型變數的值可以是十進位制,八進位制,十六進位制,但在記憶體中儲存著是二進位制數。變數顧名思義是數值可以變的量,整型變數表示的是整數型別的資料。擴充套件資料 分類基本型 型別說明符為int,在記憶體中佔4個位元組 不同系統可能有差異,此處原為2,經查證wi...