数码之家

 找回密码
 立即注册

QQ登录

只需一步,快速开始

微信登录

微信扫一扫,快速登录

搜索
查看: 468|回复: 14

C++ 名称来源

[复制链接]
发表于 2025-3-12 11:15:46 | 显示全部楼层 |阅读模式
如文中所描述,和大家共享。

感觉文中是 【一语双关】--- 个人见解。

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?立即注册 微信登录

x
发表于 2025-3-12 11:44:26 | 显示全部楼层
The ++ operator is said aloud as "plus-plus" and -- as "minus-minus."
回复 支持 反对

使用道具 举报

发表于 2025-3-12 12:23:34 | 显示全部楼层
参考还有 C#, 一般认为 C#=C++++

但是太难看了,重新组合下:
++
++ = #
回复 支持 反对

使用道具 举报

 楼主| 发表于 2025-3-12 15:25:08 | 显示全部楼层
t3486784401 发表于 2025-3-12 12:23
参考还有 C#, 一般认为 C#=C++++

但是太难看了,重新组合下:

第一次听说。
请教一下
c = c++++; 代码, C 编译器 或 C++ 编译器能编译过吗?
回复 支持 反对

使用道具 举报

发表于 2025-3-12 16:33:26 | 显示全部楼层
bh4qix 发表于 2025-3-12 15:25
第一次听说。
请教一下
c = c++++; 代码, C 编译器 或 C++ 编译器能编译过吗? ...

单纯的 C/C++ 环境,如果用基础类型(例如int),是不允许 ++++ 的,
会提示 ++ 运算符需要左值(L-Value),即 x++ 这个玩意不能放在等号左边: x++  =3 这样非法。

但既然这么提示了,可以用 C++ 重载运算符搞定,把 ++ 重载成一个左值(例如&引用),就有了。
以下的代码可以在 C++ 环境下正确编译:

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?立即注册 微信登录

x
回复 支持 反对

使用道具 举报

发表于 2025-3-12 18:27:34 | 显示全部楼层
t3486784401 发表于 2025-3-12 12:23
参考还有 C#, 一般认为 C#=C++++

但是太难看了,重新组合下:

C# 读作 C sharp
这个 # 来自音乐上的升记号 (乐谱上是写成这样的 ♯ ),发音 sharp 就是依照音乐上升记号的读法
在音乐上:
C# 就是 升 C,原來的 C 升半音
C# major 是 升C大调

回复 支持 反对

使用道具 举报

 楼主| 发表于 2025-3-12 18:46:28 | 显示全部楼层
t3486784401 发表于 2025-3-12 16:33
单纯的 C/C++ 环境,如果用基础类型(例如int),是不允许 ++++ 的,
会提示 ++ 运算符需要左值(L-Value ...

谢谢老师指导!
重载就是另一会事了。
我开始的问题就是,编译器会不会把 a = c++++ 解释为 a = (c++)++ ?
因为 (c++)++ 是合理的表达式。
谢谢!
回复 支持 反对

使用道具 举报

发表于 2025-3-13 01:05:24 | 显示全部楼层
bh4qix 发表于 2025-3-12 18:46
谢谢老师指导!
重载就是另一会事了。
我开始的问题就是,编译器会不会把 a = c++++ 解释为 a = (c++)++  ...

一样的测试过了, c++++ 与 (c++)++ 效果一样,都是报错需要左值。

左值是一个有明确内存存储空间的变量, C 语言的表达式中间值大多数都不是左值。

变量 c 既可以是数值,也可以是左值,因而 c++ 合法;
数值 c++ 只是个数值=c 的中间值,没有明确的存储空间,因而对其进行再次 ++ 非法:
c++++ 与 (c++)++ 都不合法。

已用 VS 和 ICC 验证过了,C/C++ 编译器下都不接受 c++++、 (c++)++
回复 支持 反对

使用道具 举报

 楼主| 发表于 2025-3-13 08:01:28 | 显示全部楼层
t3486784401 发表于 2025-3-13 01:05
一样的测试过了, c++++ 与 (c++)++ 效果一样,都是报错需要左值。

左值是一个有明确内存存储空间的变量 ...

多谢,我抽空在 gcc 下验证一下,估计结果应该是一致的。
回复 支持 反对

使用道具 举报

 楼主| 发表于 2025-3-13 08:05:07 | 显示全部楼层
本帖最后由 bh4qix 于 2025-3-13 09:50 编辑
ttl1 发表于 2025-3-12 18:27
C# 读作 C sharp
这个 # 来自音乐上的升记号 (乐谱上是写成这样的 ♯ ),发音 sharp 就是依照音乐上升记 ...

我是 2003-2004 年开始学习 C# ,去香港铜锣湾外文书店买了第一本 C# 原版书,从该书中间知道知道 C# 读作 C Sharp。
和音乐的关系,还真不知道。
回复 支持 反对

使用道具 举报

 楼主| 发表于 2025-3-13 09:50:55 | 显示全部楼层
t3486784401 发表于 2025-3-13 01:05
一样的测试过了, c++++ 与 (c++)++ 效果一样,都是报错需要左值。

左值是一个有明确内存存储空间的变量 ...

Ubuntu 自带 C 编译器,编译结果。

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?立即注册 微信登录

x
回复 支持 反对

使用道具 举报

发表于 2025-3-13 10:50:53 来自手机浏览器 | 显示全部楼层
bh4qix 发表于 2025-3-13 09:50
Ubuntu 自带 C 编译器,编译结果。

看样子都是提示左值
回复 支持 反对

使用道具 举报

 楼主| 发表于 2025-3-13 13:02:22 | 显示全部楼层
t3486784401 发表于 2025-3-13 10:50
看样子都是提示左值

是的,看来不同的编译器,报错内容一样的。
回复 支持 反对

使用道具 举报

发表于 昨天 16:19 来自手机浏览器 | 显示全部楼层
我感觉能学会C#基本上淘汰了本科生里90%的人。
回复 支持 反对

使用道具 举报

 楼主| 发表于 昨天 16:33 | 显示全部楼层
梅花一党 发表于 2025-8-5 16:19
我感觉能学会C#基本上淘汰了本科生里90%的人。

C# 没有指针,比 C ,C++ 容易好多,开发效率高。
C# 让本科生学,个个高分。
回复 支持 反对

使用道具 举报

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

本版积分规则

APP|手机版|小黑屋|关于我们|联系我们|法律条款|技术知识分享平台

闽公网安备35020502000485号

闽ICP备2021002735号-2

GMT+8, 2025-8-6 07:36 , Processed in 0.093600 second(s), 8 queries , Redis On.

Powered by Discuz!

© 2006-2025 MyDigit.Net

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