【问题标题】:Printing different values for ++i||j++&&++k with printf vs cout [duplicate]使用 printf vs cout 为 ++i||j++&&++k 打印不同的值 [重复]
【发布时间】:2021-06-23 15:58:57
【问题描述】:

此代码为 ++i||j++&&++k 打印不同的值,具体取决于使用的是 printf 函数还是 cout。这是为什么呢?

#include <stdio.h>
#include <iostream>

using namespace std;

int main()
{

    int i = 1,j=1,k=1;
    cout<<++i||j++&&++k; 
    printf("%d", ++i||j++ && ++k);

}

【问题讨论】:

标签: c++ increment


【解决方案1】:

根据C++ Operator Precedence - cppreference.com&lt;&lt; 运算符的优先级高于|| 运算符。因此,声明

cout<<++i||j++&&++k;

意思

(cout<<++i) || j++&&++k;

因此,打印增量后i的值。

另一方面,++i||j++ &amp;&amp; ++k 的值将被打印出来

printf("%d", ++i||j++ && ++k);

还要注意cout&lt;&lt;++i||j++&amp;&amp;++k; 的执行可能会影响printf("%d", ++i||j++ &amp;&amp; ++k); 的结果,因为++ 运算符有副作用,并且变量的值不会在语句之间重置。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2014-02-15
    • 1970-01-01
    • 2020-08-12
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-04-22
    相关资源
    最近更新 更多