当前位置: 华文星空 > 知识

「C++」读作「C 加加」,为什么「C#」不能读作「C 井」呢?

2020-10-07知识

这个问题得从C++的命名说起。

C++之父斯特劳斯特鲁普在C语言的基础上做了增强,创造出了一种增强型C语言。斯特劳斯特鲁普认为这种增强型C语言是C语言的自然演进,于是依照C语言的语法规则,将其最终命名为 C++。

「++」是C语言中的运算符,表示「(变量)+1」。可以说C++的命名,是对「C++语言是对C语言的增强和演进」这一特点的优雅诠释。

于是我们遵照音从作者的原则,应当认为「C++」是一条C语言的语句,应该按照读这条C语言语句的习惯读法去读它,所以 C++的英语读作 C Plus Plus,汉语读作 C加加

而C♯ ,同样依照音从作者的原则,应当英语读作 C Sharp, 汉语读作 C升。

这是因为严格来说不存在「C#」,只存在「C♯」。

♯ 并非井号#,而是五线谱里的升号,表示升半个音,英语读作 Sharp,汉语读作升。

升号♯

C♯ 是音乐里的一个音名,在音乐中「C♯」表示C升半音,所以应当英语读作 C Sharp ,汉语读作 C升(或升C)。

显然,「C井」对应的英文是「C Well」,「C#」对应的英文是「C Hash」,这些都不符合作者的原意, C Sharp 才是符合 C♯ 推出者微软公司原意的读法之一

为什么说「之一」呢?这是因为,C♯ 语言是一种由C和C++派生出来的编程语言,微软在推出时将其命名为C♯ 包含了两种考虑:

  • 「C♯」表示 C 升半音,为比 C 高一点的音节,代表着 C♯ 是 C 的更高级形态 (注:正如在音乐上 C♯ 音节并非「更高级的C音节」, C♯ 在某些情况下不能在性能和程序大小方面与C语言相抗衡,因此C♯也并非是「比C语言更高级的编程语言」,而是C语言的另一种新形态。此处的「更高级」仅是文学意义上的高级)
  • 同时,微软认为C♯在一些语言特性方面对比 C++更有优势,是对 C++的提升,因此采用了C++的命名方法: 「♯」形似4个加号,代表着 C♯ 语言是对 C++ 语言的增强和演进
  • 从第二点可以得知, C♯ 实际上就是 「C++」++ 。

    我们从严谨的语言学角度出发,遵照音从作者的原则, 应当认为 C♯ 除了像按照音节读法读作 C Sharp(C升) 以外,还可以读作 C Plus Plus Plus Plus ——汉语自然是读作 C加加加加了。