问:
char与int比较
答:
char和int都是C/C++中的基本数据类型,用于表示数字。但是有以下几点主要区别:
1. char是字符型,用于表示ASCII字符,它占1个字节,可以表示0到255之间的值。int是整数型,占4个字节,可以表示-2147483648到2147483647之间的值。所以int的范围远大于char。
2. char可以当作数字使用, ASCII字符'0'的整数值是48, '1'是49,以此类推。所以char类型变量既可以存放字符,也可以运算。不过运算时会将字符自动转为对应的整数值。
3. 因为char只占1个字节,所以char类型变量做算数运算时会有overflow的风险,超出范围的值会循环使用。而int由于位数更大,overflow的风险更小。
4. char可以用''括起来表示字符,如'A'。int只能表示数字,没有字符形式。
5. char可以用来表示字符串,因为字符串就是一系列字符组成。int不可以表示字符串。
例如:
char c1 = 'A'; //ok
char c2 = 66; //ok,66代表字符B
int i = 66; //ok
c1++; //c1变为B,因为A的ASCII值为65
c2++; //c2变为C,因为66的下一位ASCII值为67
i++; //i变为67
c1 = 300; //编译错误,超出char范围
i = 30000; //ok
所以总结来说,两者都是表示数字,但char主要用于表示ASCII字符和短整型,范围有限,且可以表示字符串;而int用于表示相对较大范围的整数。选择哪个类型,取决于具体需要表示的数字范围和用途。