char类型作为循环下标

freeskyo 2010-06-24 07:40:24

for ( char i=0;i<20;i++ )
{
printf("i=%d\n",i);
}


为什么char数据类型可以作为循环下标.即=int功能.
...全文
346 23 打赏 收藏 转发到动态 举报
写回复
用AI写文章
23 条回复
切换为时间正序
请发表友善的回复…
发表回复
lvshaoqing 2010-07-01
  • 打赏
  • 举报
回复
[Quote=引用 22 楼 freeskyo 的回复:]
引用 20 楼 pengzhixi 的回复:
结贴吧


想结贴,可没有理想的答案呀
[/Quote]

人家都说的这么明确了,难道你还不能结贴么。 char就是整数类型。 而数组的下标可以用整数类型。 整数类型不仅仅是int等。
freeskyo 2010-07-01
  • 打赏
  • 举报
回复
[Quote=引用 20 楼 pengzhixi 的回复:]
结贴吧
[/Quote]

想结贴,可没有理想的答案呀
晨星 2010-07-01
  • 打赏
  • 举报
回复
[Quote=引用 15 楼 lvshaoqing 的回复:]
引用 11 楼 lqbk1 的回复:
引用 7 楼 lvshaoqing 的回复:
引用 2 楼 oyster2008 的回复:
char就是整型


不要误人子弟!

char本来就是整型……
看《c与指针》去……


取值范围不同,汇编指令处理不同。 何来相同之理。 误人子弟!!!
[/Quote]
他说的“整型”是指“整数类型”的意思,而不是“int”。char当然不是int,就好比short、long也都不是int(尽管某些平台上他们可能一样长)。但他们同属于整数类型(或者说定点数),而非浮点类型。
pengzhixi 2010-07-01
  • 打赏
  • 举报
回复
结贴吧
晨星 2010-07-01
  • 打赏
  • 举报
回复
[Quote=引用 8 楼 freeskyo 的回复:]
先谢谢大家的回复。

有能从计算机原理或编译原理的角度作一下分析的吗?
[/Quote]
这没什么好分析的,'A'就是65,只不过在打印到屏幕或者打印机上时,常常根据“可读”的需要被显示成一个字母'A'。
就像我上面打的这些字,在内存中也都是整数数字,而不是以横竖撇捺的形式存在于内存中。至于这些整数所表示字符的点阵信息,那是字库关心的事。
cxxer 2010-06-28
  • 打赏
  • 举报
回复
char类型对象存储的是字符的ASCII码,是以整数的形式存储的。
yidasoft 2010-06-28
  • 打赏
  • 举报
回复
char类型在计算机中以ascii码表示
bobo364 2010-06-28
  • 打赏
  • 举报
回复
对于char型字符来说,在存储单元中存储的并不是字符本身,而是该字符的ASCII码。
字符型数据和整形数据是通用的,只是字符数据只占一个字节,无符号char只能存放0-255范围的整数。

char肯定用到了asc码表这样的机制,看见char类型把2进制和asc码表里的字符转换,char的数字转换了估计还是int
lvshaoqing 2010-06-28
  • 打赏
  • 举报
回复
[Quote=引用 11 楼 lqbk1 的回复:]
引用 7 楼 lvshaoqing 的回复:
引用 2 楼 oyster2008 的回复:
char就是整型


不要误人子弟!

char本来就是整型……
看《c与指针》去……
[/Quote]

取值范围不同,汇编指令处理不同。 何来相同之理。 误人子弟!!!
ameyume 2010-06-27
  • 打赏
  • 举报
回复
对于char型字符来说,在存储单元中存储的并不是字符本身,而是该字符的ASCII码。
字符型数据和整形数据是通用的,只是字符数据只占一个字节,无符号char只能存放0-255范围的整数。
东莞某某某 2010-06-27
  • 打赏
  • 举报
回复
[Quote=引用 8 楼 freeskyo 的回复:]
先谢谢大家的回复。

有能从计算机原理或编译原理的角度作一下分析的吗?
[/Quote]

编译器的结果,因为解释char要根据char单元里面存放的二进制,所以char可以跟char范围内的int通用
cao_julians 2010-06-27
  • 打赏
  • 举报
回复
可能有一个概念教程没有介绍,即“整类型”,它是整型(包括long,short修饰,unsigned,signed修饰的)、字符类型(也有unsigned,signed修饰的)、枚举类型的“超集”。它们都是“整数”,只不过值范围不同;都可以做for的循环变量(要保证连续)、做switch的选择变量
lqbk1 2010-06-27
  • 打赏
  • 举报
回复
[Quote=引用 7 楼 lvshaoqing 的回复:]
引用 2 楼 oyster2008 的回复:
char就是整型


不要误人子弟!
[/Quote]
char本来就是整型……
看《c与指针》去……
Yanger_xy 2010-06-27
  • 打赏
  • 举报
回复
char*本身就是int类型,字符对应的是其ASCII码
cattycat 2010-06-27
  • 打赏
  • 举报
回复
这有啥解释的呢,char就是一个字节,可以和int转换的,编译器支持这个转换。
freeskyo 2010-06-27
  • 打赏
  • 举报
回复

先谢谢大家的回复。

有能从计算机原理或编译原理的角度作一下分析的吗?
lvshaoqing 2010-06-25
  • 打赏
  • 举报
回复
[Quote=引用 2 楼 oyster2008 的回复:]
char就是整型
[/Quote]

不要误人子弟!
  • 打赏
  • 举报
回复
其实在计算机里面所以的字符数字.我们所在屏幕上看到的都是字符...

这是因为计算机遵实的是ASSIC(肯定写错了.)的编码...

就是这个数字代表的是这个字符在这个ASSI表中的位置..在内在中存储的是他的位置..

然后再传给显示卡.由于显示卡也是按这个GUI则,所以显示卡再找到这个编码所对应的字符再显示出来...

哎.表述起来真复杂...有个输入法叫区位码那个..就是那个意思...
jldream110 2010-06-24
  • 打赏
  • 举报
回复
char 为整形 占一个字节 。for ( char i=0;i<20;i++ ) 这里 char i=0 是初始化。其实正常使用这种一个字节的变量,定义为char 就可以了 ,能节省空间。
cattycat 2010-06-24
  • 打赏
  • 举报
回复
char也可以用整形,但是1个字节,只能表示-128-127之间的范围。如果是unsigned char,则255
加载更多回复(3)

69,373

社区成员

发帖
与我相关
我的任务
社区描述
C语言相关问题讨论
社区管理员
  • C语言
  • 花神庙码农
  • 架构师李肯
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧