C语言中的int char 的区别

发布网友

我来回答

5个回答

热心网友

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

热心网友

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

热心网友

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

热心网友

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

你这里inBuf是什么类型的追问上面的y已经是对256取余完成的了,也就是说y<=255,所以char 应该是可以存下的啊

热心网友

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

声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com