当前位置 : 主页 > 网页制作 > HTTP/TCP >

编程语言 – 语言是否需要preIncrement(x)和postIncrement(x)

来源:互联网 收集:自由互联 发布时间:2021-06-16
我从未在实际代码中看到用于预增量和后增量的用例.我经常看到它们的唯一地方是谜题. 我的观点是,它引入了更多的混淆而不是有用. 是否有任何真实的用例场景 不能通过使用=来完成
我从未在实际代码中看到用于预增量和后增量的用例.我经常看到它们的唯一地方是谜题.
我的观点是,它引入了更多的混淆而不是有用.

>是否有任何真实的用例场景
>不能通过使用=来完成

y = x

y = x
x = 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++;

该语句将x分配给y,副作用是x随后递增. x是相同的,只是预先发生副作用.

类似地,赋值的副作用是它评估为赋值,这意味着您可以执行以下操作:

while ((c = getchar()) != -1) count++;

这使得像:

42;

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

网友评论