gpt4 book ai didi

c++ - printf ("%d %d\n",i++,i++) 输出

转载 作者:行者123 更新时间:2023-11-30 21:33:47 27 4
gpt4 key购买 nike

为什么此代码将输出显示为“3 2”而不是“2 3”?

#include<iostream>
#include<stdio.h>
#include<string.h>
#include<string>
#include<map>
#include<vector>
using namespace std;
int main()
{

int i=2;// declare

printf("%d %d\n",i++,i++);//print
return 0;
}

输出为:“3 2”为什么它以相反的顺序打印

最佳答案

在此语句中,表达式 “printf(...)”多次修改变量“i” 没有中间序列点。

This behavior is undefined.

编译器检测到以下情况 同一变量已被修改多次 之间没有序列点的表达式 修改。因为会发生什么修改 last 未定义,该表达式可能会产生 不同平台上的结果不同。

Rewrite the expression so that each variable is modified only once.

即使你可能会在不同的编译器中得到输出“2 3”

关于c++ - printf ("%d %d\n",i++,i++) 输出,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21220522/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com