c语言数据类型转换

求大能指点,可不可以不像书上那么复杂难懂,谢谢啊

C类型转换很简单的。int a;
现在A是整数型,把他转换为双精度型就是:(double)a;括号加你要转换的类型,括号后加上变量就OK了,还有转换成指针的,(int *)A,将A转换成指向整型亦是的指针。
你还可以这样子理解:把括号拿开就是:double a;把他想象重新定义类型吧。
温馨提示:答案为网友推荐,仅供参考
第1个回答  2011-08-27
类型转换,很好理解的 书上说的够清楚了吧,一般是占用多byte的才能转成少的,例如一个int型的变量A可以转成 CHAR 型的 反过来就不能,强制转换也要满足这个条件,否则会发生溢出,有些编译器会自动扩充内存以达到存储的目的。
第2个回答  推荐于2017-09-14
C语言类型转换分级别,一般多是:
默认状态:低级向高级转换,级别高低(小到大):int,float,double,(注意char只可以和int之间转换);
若要高级向低级转换:就要用到强制类型转换符!如int(7.7)=7;追问

主要是int和unsigned int默认情况下的转换,还有就是char和signed char是不是一样的,int与signed int 、short int是不是一样的

char foo(void)
{
unsigned int a=6;
int b=-20;
char c;
(a+b>6)?(c=1):(c=0);
return c;
}求c的值

追答

没有signed char类型吧!
c=1;
这里是数值1默认转化为char类型!你可以试一下:
char foo(void)
{
unsigned int a=6;
int b=-20;
char c;
(a+b>6)?(c='1'):(c=0);//这里‘1’是字符
printf("%d ",c+1);//这里c转化为ASCII码值参与数值计算!
printf("%s\n",typeid(c).name());//用于验证c的类型,包含在头文件中!
return c;
}

本回答被提问者采纳
第3个回答  2011-08-27
类型转换,(要转换为的类型)原类型,比如 要把float的变量a转换为int。就(int)a,或者
int(a)------这个不保证有的编译器不报错
第4个回答  2011-08-27
赋值时,等号右侧的类型会自动转化成等号左边的类型,再赋值给左边
相似回答