为什么char a = 65比char a ='A'更不便携

时间:2016-09-05 15:05:46

标签: c

我刚刚问过这个问题What is the reason for the double negation -(-n)?,回答者在评论中提及

char a = 'A';

更便携

char a = 65;

这是为什么?当然他们完全一样吗?

3 个答案:

答案 0 :(得分:5)

A由ASCII表示为65;但这并不意味着每个角色系统都会代表65岁。

如果你写

char a = 65;

然后你隐含地假设系统将使用ASCII。这比写作

便携
char a = 'A';

没有做出这样的假设。

答案 1 :(得分:2)

65是A的ASCII代码,它可以在许多系统上运行,但如果系统不支持ASCII或A没有65,该怎么办?如果发生这种情况,那么由于对系统的依赖,它的便携性就会降低。

char a = 'A';

是一个可以在所有系统上运行的字符文字,但是:

char a = 65;

是ASCII,可能无法在所有系统上运行。您基本上依赖于用户使用ASCII的事实,并且取决于用户永远不可靠。

答案 2 :(得分:1)

如果变量a应该存储字母' A'那么最好写一下

char a = 'A';

因为它更具可移植性,因为可能还有其他字符编码而不是ASCII,但也因为a存储字母“A'”而读者更清楚。

相反的情况更为明显:没有人会写

int a = 'A';

a应该保留值“' 65'进行计算。