| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 619 人关注过本帖
标题:求教:赋值运算问题 刚没写清楚 请来看看
只看楼主 加入收藏
回声
Rank: 1
等 级:新手上路
帖 子:26
专家分:0
注 册:2007-10-2
收藏
 问题点数:0 回复次数:4 
求教:赋值运算问题 刚没写清楚 请来看看
求教:赋值运算问题
int i=289;
char c='a';
c=i

都说这个赋值是没问题的, 我理解成这样: 把289赋值给整型变量i,将字符a(也就是ASCII表中的97)赋值给字符变量c, 这么看来c=i就是有问题的了,   我想这样理解是错的,但是一直又想不明白,有没有人帮我解释下正确的理解是什么样子的? 还有 字符变量的赋值范围是 -128~~127或者0~~255,这个范围没错吧.289不能赋值给字符变量c,对吗?

书上只提了句"整数截取"并没有提示这么截取的原因.  如果c=33, 那么和c=i, char c='a',int c=289是不是有冲突啊?
搜索更多相关主题的帖子: 赋值 运算 
2008-04-17 21:08
雨中飛燕
Rank: 1
等 级:新手上路
帖 子:765
专家分:0
注 册:2007-10-13
收藏
得分:0 
怎么可能冲突?16进制和程序的执行顺序知道不?

" border="0" />
2008-04-17 21:30
now
Rank: 1
来 自:广州
等 级:新手上路
帖 子:544
专家分:0
注 册:2007-11-9
收藏
得分:0 
int i=289;// 若int为四字节,0000 0000 0000 0000 0000 0001 0010 0001
char c='a';//字符常量'a',作为数值97存储在32位单元中,而赋值后的c,则把97存储在 一个8位存储单元;
c=i;// 32位取后8位:0010 0001,值为33;

GIS
Geographic Information System
你在哪里?——》你的坐标?
2008-04-17 21:40
now
Rank: 1
来 自:广州
等 级:新手上路
帖 子:544
专家分:0
注 册:2007-11-9
收藏
得分:0 
程序代码:
#include<stdio.h>
int main(void)
{
    char ch='ABCD'; /*假设int为4字节*/
    printf("%c,",ch);
    return 0;
}

LZ执行一下上面代码,就会发现一些问题。

[[it] 本帖最后由 now 于 2008-4-17 21:57 编辑 [/it]]

GIS
Geographic Information System
你在哪里?——》你的坐标?
2008-04-17 21:45
回声
Rank: 1
等 级:新手上路
帖 子:26
专家分:0
注 册:2007-10-2
收藏
得分:0 
刚才在baidu 吧看了解释才明白是先换成16进制进行运算的,书上列举了这个例子,但是并没有什么解释也未提及16进制和程序的执行顺序的问题,所以我看起来觉得很突然甚至无法理解, 现在正在想呢,谢谢楼上2位.

[[it] 本帖最后由 回声 于 2008-4-17 21:47 编辑 [/it]]

2008-04-17 21:46
快速回复:求教:赋值运算问题 刚没写清楚 请来看看
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.033029 second(s), 7 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved