C语言中的int char 的区别

2024-11-30 08:49:26
推荐回答(5个)
回答1:

char是有符号数,表示范围是-128~127,不是你想的0~255哈。所以你把%256的结果赋值给它,大于等于128的情况下全成负值了。想要无符号的就是 unsigned char
而赋值给int就不会了。 int至少有2字节。典型的是4字节。

回答2:

int 是整形变量的声明关键字 长度为4个字节
char 只能储存一个字符 长度为1个字节
你说char y换成int y 不行,那你就试试换成int y后 后面用y时加上强制转换
-------
你图没截完吧 inBuf 、totleLine的声明都没有。不知道这些数据。也不知道你到底想干什么

回答3:

不清楚你所指的测试是什么,但是int和char的区别主要是类型长度。
在32位系统中,一般int占4个字节,char占1个字节。
我估计你是代码扫描程序报错吧,在inBuf[i][j]=y;这句话中如果inBuf是char型,y是int型,那这个赋值就是有问题的,这里会进行隐式类型转换将int转换成char,有可能会丢失高位数据。

回答4:

char只有一个字节,int有4个字节,能表示的内容大小不一样
char只有0~255,int范围[-2^31 , 2^31 -1] ,要是处理器是64位的可以更大

你这里inBuf是什么类型的

回答5:

假设用32位操作系统
int开设个变量存储整型数据,数据占用4字节
char开设变量存储字符型数据,数据占用1字节
int
*开设指针型变量,指针占用4字节,指向的是个4字节的整型数据
char
*开设指针型变量,指针占用4字节,指向的是个1字节的字符型数据