首页 > 技术文章 > C/C++ cout 和printf 的执行顺序

lvvou 2021-09-03 17:59 原文

前言

在调试程序的时候会使用一些打印函数进行辅助调试,在期间遇到一些平时没注意的事儿。

代码演示

#include <iostream>
#include <stdio.h>
using namespace std;

int main(int arg, char** argv)
{
    int n = 10;

    cout << n << "," << --n << "," << ++n << endl;  // 我以为输出是 10,9,10
    cout << n << "," << n++ << "," << --n << endl;  // 我以为输出是 10,10,10

    printf("%d,%d,%d\n", n, --n, n++); // 我以为输出是 10,9,10
    printf("%d,%d,%d\n", n, n++, --n); // 我以为输出是 10,10,10

    return 0;
}

调试结果

它们都是从后边开始执行的,刚好相反。

哎,平时没留意的小细节,在调试项目的时候被误导了,费了好大劲。

---End

推荐阅读