C语言数据类型隐式转换

不打扰是莪最后的温柔 提交于 2020-01-11 22:28:30

举个栗子:
unsigned int a = 20;
signed int b = -130;
a > b 还是 b > a
实验证明b > a;
b = -130 int 先转化为unsigned int再与a比较
隐式转换四种情况
1:算式运算式中,低类型能够转换为高类型
2:赋值表达式中,右边表达式的值自动隐式转换为左边变量的类型,并赋值给它
3:函数调用中参数传递时,系统隐式地将实参转换为形参的类型后赋给形参。
4:函数由返回值时,系统将隐式地返回表达式类型转换为返回值类型,赋值给调用函数
char,short----->int------->unsigned ------->log-------->double<--------float
低级-------------------------------------------------------------->高级

数组是一种特殊的指针
int a = 10;
int *p = &a;
printf(“a=%d,*p = %d, p[0] = %d, p[1] = %d”,a, *p, p[0], p[1]);
a = 10; *p = 10 p[0] = 10 p[1] = 乱码

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!