在C语言中,是否可以使用i**进行乘法运算?与i++不同,为什么i**在C语言中无法工作?

3

在C语言中是否可以使用i**进行乘法运算呢?例如,我可以使用i++来对i进行自增操作。为什么i**不能在C语言中工作呢?

#include <stdio.h>
int main(void)
{
    int result;
    for (int i = 2; i < 100; i**){
        result = i + 1;
        printf("%i\n", result);
    }


    return 0;
}

3
因为在C语言中没有**运算符。 - undefined
3
i++ 表示加 1。那么 i** 应该表示什么?乘以 1 吗? - undefined
5个回答

4
不,这是不可能的。在C语言中没有像一元增量(++)和减量(--)运算符那样的运算符**。你应该尝试使用i *= i

3
“i++”是“i = i + 1”的简写。 如果存在“i**”,则扩展意义上它将意味着“i = i * 1”,因此它将是毫无用处的。所以他们从未实现过它。
即使在编辑以澄清语法之后,从你的问题中仍然不清楚你是否期望“i **”执行为“i = i * i”。我猜这就是你从所接受的答案中得出的结论。如果你学会向别人清楚地解释事情,你会发现你的思维更加清晰,能够自己解决许多问题的答案。

不同意!如果(i >= 2),那么(i**)才有意义。但是它没有被实现,因为我们通常从0或1开始计数。但在这种情况下(i = 2或更大),我们可以使用i *= i。附注:我刚开始学习编程。 - undefined
1
仔细阅读我说的话:i++等同于"i = i + 1",因此"i**"等同于"i = i * 1"。如果在这种情况下i=2,那么"i**"将等同于"i = 2 * 1",我们最终得到的i仍然是2。因此,"i**"变成了一个无用的操作。你似乎打算让"i**"扩展为"i = i * i",是的,这个操作会有用。然而,你从未在任何地方明确说明过这一点。如果你这样做了,你可能会看到它,并意识到"i++"和你提出的"i**"的行为之间存在不一致。不一致的行为往往导致错误。 - undefined

1
通常情况下,在 for 循环的递增/递减部分不使用乘法运算,因为假设我们的变量(i)从 0 开始,那么每次乘法运算都会得出 0

这毫无意义...如果你在循环中进行乘法运算,当然要确保从任何非零值开始。 - undefined

1
可能可以,但是不能使用不起作用的i**,你需要使用:
for (int i = 2; i < 100; i *= i)

0

在C语言中,可以使用i++来进行乘法运算吗?为什么i**在C语言中无法工作?
不,这是不可能的。对于你的第二个问题的答案如下所述, 基本上,增量和减量有特殊用法,如前增量和后增量,一个语言不能仅仅因为某人需要额外的功能而扩展,因为这会因为扩展其语法而降低速度。

所以最常用的++i, i++, --i, i--是存在的,其他的则不是。

您可以使用以下代码来完成您的任务:

 i*=i;
 =i*i;

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接