社区
C语言
帖子详情
谁帮我解决个小问题???
72877588
2003-12-24 02:57:52
void main()
{
char a;
while(1)
{
if(a!='!')
{
scanf("%c",&a);
printf("%c",a);
}
else
break;
}
}
当我把char i 改成 int i 就有问题了 当我输入!时 怎么就循环了?
...全文
54
7
打赏
收藏
谁帮我解决个小问题???
void main() { char a; while(1) { if(a!='!') { scanf("%c",&a); printf("%c",a); } else break; } } 当我把char i 改成 int i 就有问题了 当我输入!时 怎么就循环了?
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
7 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
huanmm
2003-12-24
打赏
举报
回复
我明白了
是这样的(挖塞,说来话长,喝点水先)
首先
在c里面(在我的机子上)
int 占用4个字节
char 占用1个字节
其次(这一点是我的猜测)
数据存储的时候是低位在前,高位在后
那么
当a为int型的时候
给他scanf一个char
因为char只占一位
所以改写的是他的最开头的一个字节也就是最低位的一个字节
那么
如果初始值小于等于255
a的高三位都为00
改写了他的最低位就相当于改写了整个四位
而当初始值大于255的时候
比如257
在内存里面就是
01 01 00 00
改写了他的最低位(比如输入一个'!')
但是次低位并没有改变
他的值就变成
33 01 00 00
最后把a的值(按照上例)就是256 + 33 = 289
而'!'的ascii码是33
所以当然有289 != 33
再回到你的程序
如果给定一个小于256的初始值就没有问题
如果不给定初始值
那么系统自动给的值很可能就大于等于256
于是出现上面的问题
over
(累死我了
感谢skywarship(很菜的小李)
因为我原来也不知道有这样的问题)
arfi
2003-12-24
打赏
举报
回复
a&0xff!='!' ===> (a&0xff)!='!'
°★.☆° .★·°∴°★.°·∴°☆ ·°∴° ☆..·
☆°★°∴°°∴ ☆°.·★°∴°.
◢◣。 ◢◣。 ☆圣★
◢★◣。 ◢★◣。 ★诞☆
◢■■◣。 ◢■■◣。 ☆节★
◢■■■◣。 ◢■■■◣。 ★快☆
︸︸||︸︸ !!︸︸||︸︸ ☆乐★
祝圣诞节快乐 ^_^!!☆°★°∴°°∴ ☆°.·★°∴°.
°★.☆° .★·°∴°★.°·∴°☆ ·°∴° ☆..·.
huanmm
2003-12-24
打赏
举报
回复
我现在只能跟你说
如果改成int型的话
给a赋一个初值就好了
但是至于为什么
我也不是太清楚
可能skywarship(很菜的小李) 说的是对的
mostideal
2003-12-24
打赏
举报
回复
你看看!和‘!’是一回事吗?
skywarship
2003-12-24
打赏
举报
回复
void main()
{
int a;
while(1)
{
if(a&0xff!='!') //改成这样
{
scanf("%c",&a);
printf("%c",a);
}
else
break;
}
}
skywarship
2003-12-24
打赏
举报
回复
当然,你输入“!”,实际a!='!',所以循环了
72877588
2003-12-24
打赏
举报
回复
不 错了 是 char a 改成 int a
淘宝丁奇:如何
解决
影响MySQL使用的9大
问题
?
其《淘宝内部分享:怎么跳出MySQL的10个大坑》一直高居数据库文章的阅读榜首。作为活跃的MySQL社区贡献者,丁奇专注于数据存储系统、MySQL源码研究和改进、MySQL性能优化和功能改进,并设计了阿里云高可靠双通道...
如何1天会用KALI LINUX渗透系统?
4、如何3步
解决
KALI运行时权限不够的
问题
? 5、如何4步
解决
下载软件时慢的
问题
? 6、如何4步
解决
不能输入中文的
问题
? 7、1...
随机开仓,止盈1~2个点,止损1~20个点能实现盈利正期望吗?
随机开仓,止盈1~2个点,止损1~20个点能实现... 看过这个课程,您将会知道: a) 这类
问题
的究极
解决
方案,直达
问题
核心,不再纠结原因 b)构建一段时间可用的交易策略 c)知道“没有不变的策略”的原因
1小时入门最新小程序授权登录注册功能开发,并把注册记录添加到数据库
使用wx.getUserProfile
解决
老版本getUserInfo无法获取用户昵称和头像的
问题
.手把手带你实现微信小程序个人中心页。 新版微信小程序授权登录,退出,缓存,小程序个人中心的实现 如果把用户授权的信息存入Mysql/云...
“秒杀”是什么?简单来说即使在同时间有大量请求抢购买同一商品并交易
“秒杀”是什么?简单来说即使在同时间有大量请求抢购买同一商品... 对于这些
问题
,都能在这个课程中找到
解决
方案。 此外你学完这套课程可以利用“秒杀”这个系统,了解怎样打造一个高并发、高可用、高性能的系统架构。
C语言
69,371
社区成员
243,082
社区内容
发帖
与我相关
我的任务
C语言
C语言相关问题讨论
复制链接
扫一扫
分享
社区描述
C语言相关问题讨论
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章