鱼C论坛

 找回密码
 立即注册
查看: 2222|回复: 6

C中为什么数字不能当做字符变量来用?

[复制链接]
发表于 2014-3-16 12:58:42 | 显示全部楼层 |阅读模式
1鱼币
#include "stdio.h"
void main()
{
char a, b;
a = 120;
b = 121;
printf("%c,%c\n",a,b);
    printf("%d,%d\n",a,b);
}
/*void main()
{
char 3, 4;
3 = 120;
4 = 121;
printf("%c,%c\n",3,4);
    printf("%d,%d\n",3,4);
}*/    这个程序  上面那种写法没错 而下面那个写法是错的  编译不能通过,不是说 不管是 a 呀 还是b  或者3  4对于CPU来说都是二进制的数么 ? 那为什么不能用数字作为变量呢?也就是说CPU把3  4当成数字 而不是字符变量 就像小学学解方程时候 老师教我们设置未知数X 比如说 3+x=7 解出来x=4;和设置 未知数为猪 3+猪=7 解 出来 猪=4 这里的X和猪应该是没有区别的啊  只是个代号  那为什么CPU 不认 数字代号 只认字母代号呢?CPU内部到底是怎么看待这些东西呢? 求详细的解释 谢谢大神们了  

最佳答案

查看完整内容

电脑只认识数字,不认识字母,所谓的字符只是通过char让编译器去查ASCII码表,因此C语言或任何一门编程语言是不允许定义char 3, 4这种形式的,因为这很容易产生歧义。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2014-3-16 12:58:43 | 显示全部楼层

电脑只认识数字,不认识字母,所谓的字符只是通过char让编译器去查ASCII码表,因此C语言或任何一门编程语言是不允许定义char 3, 4这种形式的,因为这很容易产生歧义。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2014-3-16 13:11:22 | 显示全部楼层
你高估编译器的智商了.........
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2014-3-20 08:04:43 | 显示全部楼层
数字是常量怎么能当变量用呢?
如果可以的话,程序起不乱套了!!
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2014-3-20 10:13:14 | 显示全部楼层
就你的例子来说,你调用printf("%c,%c\n",3,4);是希望程序把120和121打印出来呢,还是希望把数字3和4对应的ASCII字符打印出来呢?很明显会产生歧义。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

 楼主| 发表于 2014-4-19 21:36:58 | 显示全部楼层
小甲鱼 发表于 2014-3-20 10:13
就你的例子来说,你调用printf("%c,%c\n",3,4);是希望程序把120和121打印出来呢,还是希望把数字3和4对应的 ...

我的想法是 当我上面使用了char 3, 4 定义3 和4 的时候  就应该告诉编译器了  3 和4 是符号 而不是数字  就是要系统把3  4当符号看 而不是数字 所以最后在使用printf("%c,%c\n",3,4);输出的时候肯定不是打印其对应的ASCII码了啊  你说的
你调用printf("%c,%c\n",3,4);是希望程序把120和121打印出来呢,还是希望把数字3和4对应的 ...这句
和正常使用情况下的printf("%d,%d\n",a,b);这个 是打印 a b对应的ascii码呢还是打印120 和121 呢? 没什么区别吧?0-9 和a-Z都是ascii码中一一对应的  那为什么电脑对他们就不一视同仁  只认字母 不认数字
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2014-4-19 21:47:37 | 显示全部楼层
我的下划线 发表于 2014-4-19 21:36
我的想法是 当我上面使用了char 3, 4 定义3 和4 的时候  就应该告诉编译器了  3 和4 是符号 而不是数字   ...

如果允许char 3 = 120,那请问我应该如何把数字3给打印出来呢?
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2024-12-26 01:54

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表