c语言中,我把int型数据赋给char型,如 int a; char b; a=24; b=a;

c语言中,我把int型数据赋给char型,如
int a;
char b;
a=24;
b=a;
这样会出现什么问题?
还有如果令a=3.2(带小数点)会出现什么问题?

int a;
char b;
a=24;
b=a;
没有问题,编译的时候会有warning ,但是要注意char 、int 的数值范围;
a = 3.2 赋值后,a的值将变成3;浮点型转为整型,小数部分会被舍掉
温馨提示:内容为网友见解,仅供参考
第1个回答  2015-03-09
int和char是相通的,两者之间可相互赋值,按上述代码,b对应的是一个控制字符cancel
如果把浮点型数据赋值给整型变量,结果会直接取其整数部分,如上述代码,结果a=3追问

char 和 int 长度不同,如果a=1000,那么b放不下了会出错吗?

追答

不会出错,但是会像强制类型转换一样丢失数据

本回答被网友采纳

如何将int型数值赋值给char型数组
int型是四个字节大小,char 型是一个字节。所以int型赋值给char数组需要把int型拆分。int型拆分成四个字节,按顺序保存在char型数组中就可以了。具体代码如下:int i =4;char a[100];for(int j=0;j<sizeof(int);j++){ a[j]=((i>>(8*j))&0xff);} 其中int型的值4就保存在了char型...

c语言中int型和char型变量相互赋值有何区别
c - '2' == c - 50,与c - 2差别是明显的。对于c - '2'来说,这里的c通常是char类型,其值可能是'2','3',...‘8’,‘9’,那么c - '2'就是一个差值,这个值代表c与'2'的距离。对于c - 2来说,这里的c可能是一个int类型,实际效果就是求两个整数的差。

C语言中,int和char型
char在C语言中是1个字节,而int要看不同的硬件、操作系统平台的不同而有区别,但不会小于2个字节,即最小2字节。如果 int 类型赋值超过255时,C语言会取int 2个字节中的低字节的数据作为有效数据,也就是,350 等价于 94,因为350的低字节是94 ...

c语言,int赋值给char
char c[4];int i=100;*(int*)c = i;也可以使用memcpy,示意代码如下:memcpy(c,&i,sizeof(i));推荐使用第一种方法,这样当要将值回传的时候,只需要按照下面的操作即可 i = *(int*)c;灵活使用指针类型转换,可以极大的简化程序代码,这个问题即是一个好例子 ...

c语言中如何将int数字转化为char
答案:在C语言中,可以使用强制类型转换的方式将int数字转化为char。具体方法是使用强制类型转换符号括号将int数字转换为对应的ASCII码值,并将其赋值给char变量。下面是一些简单的代码示例来说明如何进行转换。详细解释:C语言中,字符实质上是通过其对应的ASCII码在计算机中存储的。因此,将一个整数转换为...

c语言中,在int形和char形混输时如scanf("%d %c %c");,为什么%c前要加...
而不会理会后面的"空f"结果a=3,b=' ',c='e'可以这样测试 include<stdio.h> long main(){ long a;char b,c;scanf("%d%c%c",&a, &b, &c); \/\/输入“3空e空f”printf("%c\\n",c); \/\/输出变量c为'e'return 0;} ...

C语言中定义变量的数据类型(比如:int,char)有什么区别??
1: 一个 int 型变量占用两个字节内存,也就是16bit;一个 char 型变量占用一个字节内存,也就是8bit;如果的声明变量时没有在“int”或“char”前加存储类型说明符,则编译器就会将变量默认为auto变量,这种变量会被放在运行内存里,至于怎么放这就是C编译器决定的,而且各个公司出的C编译器的...

c语言中怎么把int型转换为char型
设 int a; \/\/转换的目标变量。char c = '7'; \/\/要转换的字符。c = a - '0';这样得到的就是对应的值了,即c = 7。如果在文件中需要多次该操作,则可以定义一个带参宏,如下:define chartonumber(x) (x-'0')这样只需要调用 c = chartonumber(a);即可实现效果。

C语言下 int转char遇到的问题
int a=90;(char)a是等于Z,就是ASCII码为90所代表的字符而不是字符型的90 对不起后面的是我失误了,如果想这样赋值的话好像只能使用‘0’+i的方法,如果直接赋ip[10]=i 的话,仍然是把i代表数字的ASCII码赋给ip[10],跟ip[10]=(char)i的功能是一样的 而如果以%c打印i的话才是0,1,...

C语言:有定义语句char a;int b;float c;double d;
本题中,数据类型分别为:char型、int型、float型和double型。按照转换规则,就要先char转换为doubl型(因为double级别比char高),int 型转为double型 ,float型转为double型, 即全部转为 double型 再进行运算。 所以,最后的数据类型是double型 。【注意】不能理解为:先将char转换成int,再转换成...

相似回答