c++ - 如何将 C 转换为 C++?

标签 c++ c visual-c++

如何将 C 代码转换为 C++?当我尽力而为时,我每次都失败了。 谁能帮我吗?

特别是,我试图理解以下内容:

v=v%10?v%(5*r)*n--:v/10

我知道是否v == v mod 10,v%(5*r)*n--。如果没有,v/10。但我不明白v%(5*r)*n--

这是上下文中的代码:

long v=1,r=1e9;
main(n){
    for(scanf("%d",&n);v=v%10?v%(5*r)*n--:v/10;n||printf("%d",v%r));
    }

最佳答案

该 C 表达式在 C++ 中也有效。由于运算符优先级规则,表达式 v%(5*r)*n-- 等效于表达式 v % ((5*r)*(n--)) 。后缀递减运算符--(它将变量减一)将首先计算,剩下的是A % B * C类型的表达式。由于运算符 %(余数)和 *(乘法)具有相同的优先级,因此将应用从左到右的关联性规则。因此,我们有 v % ((5*r)*(n--))。欲了解更多信息,请查看这些链接:

http://en.cppreference.com/w/cpp/language/operator_precedence

https://en.wikipedia.org/wiki/Operator_associativity

你也不理解三元运算符。在您的情况下,整个语句 v=v%10?v%(5*r)*n--:v/10 的意思是:如果 v%10 为 true (与零不同)然后将 v%(5*r)*n-- 的结果赋给变量 v,否则将 v/10 的结果赋给变量 v code> 到变量 v。欲了解更多信息,请查看

http://www.cprogramming.com/reference/operators/ternary-operator.html

顺便说一句,请注意,撰写此博客的人生成了一些糟糕的代码。您可能不想从中学习。

关于c++ - 如何将 C 转换为 C++?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34289158/

相关文章:

c++ - 如何使用 getProcAddress() 而不进行类型转换?

c - 数字列表框

visual-studio - 如何在 Visual Studio 2010 中从 C++ 源代码生成汇编代码

winapi - 错误 LNK2001 : unresolved external symbol _CLSID_XYS

c++ - 在某个随机命名空间中专门化和定义模板静态成员是否可以?

c++ - 多字符字符常量警告

c - GTK+ 使 Cygwin 错误

WinAPI C++ 客户端在读取之前检测匿名管道上的写入

c++ - 用作自己的初始化程序的未初始化变量的行为是什么?

c++ - 每个键具有多个数据元素的链表