gpt4 book ai didi

c# - i = i++ 不会增加 i。为什么?

转载 作者:IT王子 更新时间:2023-10-29 04:10:22 26 4
gpt4 key购买 nike

<分区>

Possible Duplicates:
Why does this go into an infinite loop?

i = i++ 这样的东西在 C 和 C++ 中有未定义的行为,因为标量对象的值在同一个表达式中改变了两次而没有干预序列点。

但是我认为这些类型的表达式在 C# 或 Java 中具有明确定义的行为,因为据我所知,参数的计算是从左到右进行的,并且到处都是序列点。

也就是说,我希望 i = i++ 等同于 i++。但事实并非如此。以下程序输出 0

using System;
class Program
{
static void Main(string[] args)
{
int i = 0;
i = i++;
Console.WriteLine(i);
}
}

你能帮我理解为什么吗?

免责声明:我完全清楚,无论是否定义了上述构造的行为,它们都是愚蠢的、无用的、不可读的、不必要的,不应该在代码中使用。我只是好奇。

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