gpt4 book ai didi

programming-languages - 语言是否需要 preIncrement (++x) 和 postIncrement (x++)

转载 作者:行者123 更新时间:2023-12-04 08:39:26 25 4
gpt4 key购买 nike

我从未见过 的用例预增后增量在实际代码中。我最常看到它们的唯一地方是拼图。
我的观点是,它引入了更多的困惑而不是有用。

  • 这个
  • 是否有任何实际用例场景?
  • 这不能通过使用 += 来完成
    y = x++y = xx += 1
  • 最佳答案

    这只是编写相同内容的一种更短的方式,只会让那些不深入了解 C (a) 的人感到困惑。可以提出相同的论据来替换:

    for (i = 0; i < 10; i++)
    printf ("%d\n", i);

    和:
    i = 0;
    while (i < 10) {
    printf ("%d\n", i);
    i = i + 1;
    }

    因为任何 for也可以用 while 来完成, 或者:
    i = 0;
    loop: if (i < 10) {
    printf ("%d\n", i);
    i = i + 1;
    goto loop;
    }

    因为任何循环结构都可以建立在条件和 goto 之外.但是(我希望)你不会那样做,对吗?

    (a) 我有时喜欢向我的学生解释这个简单的陈述和副作用,这样可以让 C 代码更加简洁,而且通常没有或很少损失可读性。

    对于声明:
    y = x++;

    该语句正在分配 xy副作用是 x之后递增。 ++x是一样的,只是副作用提前发生了。

    类似地,赋值的副作用是它评估为赋值的值,这意味着您可以执行以下操作:
    while ((c = getchar()) != -1) count++;

    这使得事情如下:
    42;

    完全有效但无用的 C 语句。

    关于programming-languages - 语言是否需要 preIncrement (++x) 和 postIncrement (x++),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2513227/

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