C语言中的int char 的区别
发布网友
发布时间:2022-04-23 12:32
我来回答
共5个回答
热心网友
时间:2023-09-19 03:26
char是有符号数,表示范围是-128~127,不是你想的0~255哈。所以你把%256的结果赋值给它,大于等于128的情况下全成负值了。想要无符号的就是 unsigned char
而赋值给int就不会了。 int至少有2字节。典型的是4字节。
热心网友
时间:2023-09-19 03:26
int 是整形变量的声明关键字 长度为4个字节
char 只能储存一个字符 长度为1个字节
你说char y换成int y 不行,那你就试试换成int y后 后面用y时加上强制转换
-------
你图没截完吧 inBuf 、totleLine的声明都没有。不知道这些数据。也不知道你到底想干什么
热心网友
时间:2023-09-19 03:26
不清楚你所指的测试是什么,但是int和char的区别主要是类型长度。
在32位系统中,一般int占4个字节,char占1个字节。
我估计你是代码扫描程序报错吧,在inBuf[i][j]=y;这句话中如果inBuf是char型,y是int型,那这个赋值就是有问题的,这里会进行隐式类型转换将int转换成char,有可能会丢失高位数据。追问y已经是对256取余数了,不会有丢失高位的现象啊
热心网友
时间:2023-09-19 03:27
char只有一个字节,int有4个字节,能表示的内容大小不一样
char只有0~255,int范围[-2^31 , 2^31 -1] ,要是处理器是64位的可以更大
你这里inBuf是什么类型的追问上面的y已经是对256取余完成的了,也就是说y<=255,所以char 应该是可以存下的啊
热心网友
时间:2023-09-19 03:28
假设用32位操作系统
int开设个变量存储整型数据,数据占用4字节
char开设变量存储字符型数据,数据占用1字节
int
*开设指针型变量,指针占用4字节,指向的是个4字节的整型数据
char
*开设指针型变量,指针占用4字节,指向的是个1字节的字符型数据