相关疑难解决方法(0)

cout vs printf - 执行顺序

可能重复:
编译器和C++中的评估参数顺序
cout <<它打印的函数调用顺序?

  1. 这个:

    int k=3;
    printf("%d %d %d",k++,k,++k);
    
    Run Code Online (Sandbox Code Playgroud)

    提供输出,4 4 4因为它们被推入堆栈中:

    %d%d%d
    
    4  -- for k++    
    4  --for k    
    4  --for ++k
    
    Run Code Online (Sandbox Code Playgroud)

    对?

  2. 这个:

    int k = 3;
    cout << k++ << k << ++k;
    
    Run Code Online (Sandbox Code Playgroud)

    实际上是重复的函数调用,所以它相当于:

    ( ( (cout << k++) << k) << ++k);
    
    Run Code Online (Sandbox Code Playgroud)

    所以,我认为首先是k++k然后++k必须按以下顺序执行的,对不对?我相信函数调用是一个序列点,但输出在不同的实现上有所不同.为什么会这样?

c c++

2
推荐指数
1
解决办法
2111
查看次数

标签 统计

c ×1

c++ ×1