C语言中 char a='16' int n=4 为什么a除以n结果不等于4?
发布网友
发布时间:2024-08-19 11:15
我来回答
共3个回答
热心网友
时间:2024-08-22 03:07
问题中char类型的a的值'16'以整数的方式来看是54,在除以n的时候会先都转化成整数再运算,也就是54/4=13.5,整数除以整数默认得到的结果也是整数,c语言中取整是取不大于当前数的最大整数,所以可以得到13
热心网友
时间:2024-08-22 03:04
char a='16' 本来就不对, 你是怎么让他运算的? char类型的只能是一个字符
热心网友
时间:2024-08-22 02:59
首先你这种定义方式是错误的;
其次不要听信某些匿名的胡扯人,我曾经就被这些扯淡人,害的走过弯路;
言归正传,C语言字符进行数学运算(+,-,*,/),都是转化为ACSII码进行运算的;C标准中数字字符字'0'~字符'9'有ASCII码,到10就没有了,10以上的数字字符只能以字符串表示("10","16","125"),但是字符串是不能进行数学运算的(重载运算符除外,但这不是真正意义上的数学运算,只是模拟)
char a='0';//字符0的ASCII码:48
....
char a='9';//字符9的ASCII码:57
char a[3]="16";//数字字符超过一位的,必须用字符串表示
string a="16";//
/****************************/
char a=16;
int a='9';
//因为char与int有ASCII码这层联系,在没有严格要求数据类型的情况下,char与int可以相互定义(不建议这样写,程序很容易出现一些莫名其妙的问题)