前言

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

代码演示

#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;
}


调试结果

C/C++ cout 和printf 的执行顺序_html

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

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

---End