板栗:
未指定Int a=20;
signed int b=-130;
是a b还是B
用实验证明b a
b=-130 int转换为无符号int后与a进行比较
隐式转换四种情况
1 )在数学表达式中,低类型可以转换为高类型
2 :赋值表达式中,右边表达式的值自动隐式转换为左边变量的类型,并赋值
3 :如果在函数调用过程中传递了参数,则系统隐式地将实参数转换为形状参数类型,并将其指派给形状参数。
4 :如果函数返回返回值,则系统将隐式返回的表达式类型转换为返回值类型,并将其赋值给调用函数
char,short---- int-----unsigned---log--------双低级
结构间强制类型转换
#include “stdio.h”
结构a {
int num;
(;
结构b {
int num;
char type;
(;
输入主(语音) )。
{
结构a a;
a.num=1;
结构=(结构) ) a;
printf(「b-num=%dn”、B-num );
}
结构a和结构b之所以能够强制相互进行类型转换,是因为它们位于两个结构的高位地址区域的数据类型存储中
对应的数据。 也就是说,起始地址的数据的数据类型必须相同。
数组是一个特殊的指针
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]=乱码