中易网

C语言中的int char 的区别

答案:6  悬赏:60  
解决时间 2021-01-14 11:24
  • 提问者网友:回忆在搜索
  • 2021-01-13 16:48
C语言中的int char 的区别
最佳答案
  • 二级知识专家网友:雾月
  • 2021-01-13 17:49
char是有符号数,表示范围是-128~127,不是你想的0~255哈。所以你把%256的结果赋值给它,大于等于128的情况下全成负值了。想要无符号的就是 unsigned char
而赋值给int就不会了。 int至少有2字节。典型的是4字节。
全部回答
  • 1楼网友:老鼠爱大米
  • 2021-01-13 22:14
不清楚你所指的测试是什么,但是int和char的区别主要是类型长度。
在32位系统中,一般int占4个字节,char占1个字节。
我估计你是代码扫描程序报错吧,在inBuf[i][j]=y;这句话中如果inBuf是char型,y是int型,那这个赋值就是有问题的,这里会进行隐式类型转换将int转换成char,有可能会丢失高位数据。追问y已经是对256取余数了,不会有丢失高位的现象啊
  • 2楼网友:患得患失的劫
  • 2021-01-13 21:41
用int y if条件里怎么写?追问还是那样写啊,在另一个测试程序中 int 和char都可以通得过,为什么这个通不过追答ASCII码啊亲 你换成int 型的 怎么在if 里面比较? 换成int 就是那个余数什么的值了 而运算的那句付给Y的值应该是得到的对应的ASCII码的值吧 这样的才能对比啊 对比是根据ASCII转换大小写什么的吧
  • 3楼网友:往事隔山水
  • 2021-01-13 21:15
char占用一个字节内存,但int占用2字节内存。
  • 4楼网友:人间朝暮
  • 2021-01-13 20:10
char只有一个字节,int有4个字节,能表示的内容大小不一样
char只有0~255,int范围[-2^31 , 2^31 -1] ,要是处理器是64位的可以更大

你这里inBuf是什么类型的追问上面的y已经是对256取余完成的了,也就是说y<=255,所以char 应该是可以存下的啊
  • 5楼网友:蕴藏春秋
  • 2021-01-13 18:34
int 是整形变量的声明关键字 长度为4个字节
char 只能储存一个字符 长度为1个字节
你说char y换成int y 不行,那你就试试换成int y后 后面用y时加上强制转换
-------
你图没截完吧 inBuf 、totleLine的声明都没有。不知道这些数据。也不知道你到底想干什么
我要举报
如以上回答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
点此我要举报以上问答信息!
大家都在看
推荐信息