我刚刚问过这个问题What is the reason for the double negation -(-n)?,回答者在评论中提及
char a = 'A';
比
更便携 char a = 65;
这是为什么?当然他们完全一样吗?
答案 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'进行计算。