兩個char型數(shù)據(jù)相加 兩個char類型的數(shù)據(jù)相加為什么結(jié)果卻是數(shù)字?
兩個char類型的數(shù)據(jù)相加為什么結(jié)果卻是數(shù)字?char實際上就是int型,保存的是字符的ascii碼,所以char基本上和int是通用的,因此兩個char相加的結(jié)果是數(shù)字,而且char是可以和int直
兩個char類型的數(shù)據(jù)相加為什么結(jié)果卻是數(shù)字?
char實際上就是int型,保存的是字符的ascii碼,所以char基本上和int是通用的,因此兩個char相加的結(jié)果是數(shù)字,而且char是可以和int直接相加的。利用這一特性,可以方便的實現(xiàn)字母的大小寫轉(zhuǎn)換,以及字符型數(shù)字和數(shù)字之間的轉(zhuǎn)換。
兩個char相加,要先轉(zhuǎn)換為int么?
#include<stdio.h>intmain(){chara="0",b[10]={"1"}//"0"==48,"1"==49intifor(i=0i<10i ){a=a b[i]}printf("%dn",a)printf("%cn",a)return0}測試結(jié)果:97a//a的ASCII碼為97C語言有類型轉(zhuǎn)換機制,在執(zhí)行運算時,小于int的類型將會提升。換句話說,(這里)兩個char類型相加,會自動轉(zhuǎn)換成int類型運算,得到結(jié)果后再轉(zhuǎn)換為char類型。這是隱式轉(zhuǎn)換。