为什么没有空的char
字面值有什么具体原因?
最接近我的想法的是,''
是'\0'
空字符。
在C++
中,char
由int
表示,这意味着空字符直接转到0整数值,该值在C ++中“与null相同”。
提出这个问题的实际部分:
在类中,我想将char值表示为枚举属性。
没有偏见我尝试使用''
初始化一个实例,这当然不起作用。
但是不应该有char
空值?不要与string.Empty
混淆,
更多的是null reference
的性质。
所以问题是:为什么没有空的字符?
-edit -
看到this question可以增强以下问题: 空char值可以在不使用的情况下连接字符串和字符 摧毁弦乐。这不是更好吗?或者应该这样 “按预期工作”?
答案 0 :(得分:5)
根据定义,char
的长度为一个字符。空的根本不适合账单。
不要在char
和string
的最大长度为1之间产生混淆。它们看起来很相似,但却是非常不同的野兽。
答案 1 :(得分:1)
提供稍微更具技术性的解释:在执行连接时,没有可用作identity element的字符。这与整数不同,其中0
用作添加的标识元素。