-
为变量赋值的时候,赋值的数据的类型必须要和变量的类型一致.否则就会出问题.
当我们为变量赋值的时候,如果赋值的数据的类型 和 变量的类型不一致.
这个时候C系统会将赋值的数据的类型 转换为 变量的类型 然后再赋值.
这样的情况叫做自动类型转换. -
当变量的类型是int类型的时候.
1). 如果我们赋值的数据超出了int的范围.这个时候C系统会将数据转换为1个随机的int数据.
2). 如果我们赋值的数据超出了int的范围太多. 这个时候自动类型转换无能为力. 编译器直接报语法错误.
3). 如果我们赋值的数据是1个实型的小数.这个时候C系统会直接截取整数部分.不会四舍五入. -
当变量的类型是float类型的时候.
1). 如果我们赋值的数据是1个double类型的小数,这个时候C系统会将这个double类型的小数转换为float
2). 如果我们赋值的数据是1个整数,那么就将这个整数转换为float小数 直接加1个.0就搞定了. -
当变量的类型是double类型的时候.
1). 当我们赋值的数据是1个float类型的时候,这个时候C系统会将其转换为double 占据8个字节.
2). 如果我们赋值的数据是1个整数,那么就将这个整数转换为double类型的小数 直接加1个.0就搞定了. -
当变量的类型是char类型的时候.
ASCII码:
每1个字符数据都有1个与之对应的整数. 这个整数就叫做这个字符的ASCII码.
不需要记忆,但是需要记住3个.'A' 65
'a' 97
'0' 48其他的字符的ASCII码就可以推算出来,是有规律的.
为char变量赋值的时候.可以直接赋值ASCII码.
当我们为char变量赋值1个整数的时候.其实赋值的是以这个整数为ASCII码所对应的字符数据.
#include <stdio.h>
int main(int argc, const char * argv[]) {
char ch = 67.9;
printf("ch = %c\n",ch);
//double d1 = 12.12f;
//float f1 = 12;
// int num = 12.123;
//
//
// printf("num = %d\n",num);
return 0;
}