问题标签 [postfix-operator]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
c++ - 如何区分(重载时)运算符++的前缀和后缀形式?(C++)
因为我已经operator++
为迭代器类重载了
但是当我尝试做
我收到关于没有 postifx 的警告++
,使用前缀形式。我怎样才能特别重载前缀/后缀形式?
javascript - 为什么要避免 JavaScript 中的递增(“++”)和递减(“--”)运算符?
工具的提示之一jslint
是:
++
众所周知,--
(++
increment) 和--
(decrement) 运算符会通过鼓励过多的技巧来导致糟糕的代码。它们在启用病毒和其他安全威胁方面仅次于错误的架构。有一个 plusplus 选项禁止使用这些运算符。
我知道像这样的 PHP 结构$foo[$bar++]
很容易导致错误,但我想不出比以下更好的方法来控制循环:
或者
突出显示它们是jslint
因为有一些类似的语言缺少“ ++
”和“ --
”语法或处理方式不同,还是有其他理由可以避免我可能遗漏的“ ++
”和“ ”?--
perl - 为什么 Perl 不允许我从后缀比较中链接后缀循环?
还行吧:
这没关系:
但这不是:
如果事情不复杂,我发现后者非常可读,而且它适合一行!有没有办法做到这一点,或者我应该继续我的生活?
c++ - i++ 比 ++i 效率低,如何显示?
我试图通过示例说明前缀增量比后缀增量更有效。
理论上这是有道理的:i++ 需要能够返回未递增的原始值并因此存储它,而 ++i 可以返回递增的值而不存储先前的值。
但是在实践中是否有一个很好的例子来证明这一点?
我尝试了以下代码:
我使用 gcc 4.4.0 编译它,如下所示:
我再次这样做了,后缀增量更改为前缀增量:
结果在两种情况下都是相同的汇编代码。
这有些出乎意料。似乎通过关闭优化(使用-O0),我应该看到展示概念的不同之处。我错过了什么?有更好的例子来说明这一点吗?
c - 后缀“_t”在 C 中代表什么?
可能重复:
_t(下划线-t)后跟的类型代表什么?
在我的 IDE (Xcode) 中输入时,当我输入一些变量名时,自动完成会弹出已经定义的单词。我偶尔会看到名称_t
末尾带有“ ”的名称。
那是什么命名约定,它是什么意思?
是否有参考文档来查找常用的修复前和修复后?
用“后缀”这个词搜索给了我很多关于同名邮件服务器的 GoogleNoise。
c# - C# 运算符重载后修复增量
我正在编写一个日期类,并且在修复后增量方面遇到了问题(前缀增量似乎很好)。
这是示例代码:
方法“Next(date d)”接受一个日期并返回明天的日期(为简洁起见,我省略了它)。我在 C# 中还很年轻,无法理解为什么前缀很好但后缀增量什么也没做。但请记住,在 C++ 中,我们必须有两种方法,而不仅仅是一种方法——用于前缀和后缀增量。
编译时也没有错误或警告。
c - 查找字符串结尾:*s++ VS *s then s++
我正在编写一个简单的字符串连接程序。
该程序按照我发布的方式运行。但是,我首先使用以下代码编写它来查找字符串的结尾:
然而,这种方法并没有奏效。我传递给它的字符串没有正确复制。具体来说,我尝试将“abc”复制到保存“\0”的 char[] 变量。
从阅读 C K&R 的书来看,它看起来应该可以工作。该紧凑形式应采取以下步骤。
- *s 与 '\0' 比较
- s 指向下一个地址
那么为什么它不起作用呢?我在 Debian 上使用 gcc 进行编译。
我发现这个版本确实有效:
提前致谢。
c++ - C++中前缀和后缀的返回值
为什么在 C++ 中前缀返回引用但后缀返回值?
c++ - 为什么后缀增量运算符采用虚拟参数?
看看这些函数签名:
Prefix 不带任何参数,但 postfix 可以。为什么?我想我们可以用不同的返回类型来识别它们。
c++ - 实现 C++ 后缀增量运算符
我编译了以下示例:
从cplusplus.com/reference我得到编译器警告:
这里有什么问题?后缀签名是否应该是myiterator operator++(int)
按值返回?
是否在某个地方定义了 STL 迭代器上的后缀签名应该是什么样的?