gpt4 book ai didi

c++ - *(flow + i*n + j) 在 C 中意味着什么?我不知道这个主题叫什么

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

我是 C 和 C++ 编程新手,但是我在算法课上看到(我从面向 Java 的学校转到面向 C++ 的类(class)),我不知道这意味着什么:

*(flow + i*n + j) += minFlowPath;

我不确定这个指针的东西叫什么。我想了解这意味着什么以及存储什么的逻辑。谢谢请重定向我。

最佳答案

如果没有更多上下文,很难确定,但考虑到表达式

 *(flow + i*n + j) += minFlowPath;

很可能 flow是一个指针。子表达式 flow + i*n + j构成指针算术。指针和整数相加会产生一个新指针,该指针指向超出原始指针计数的元素,因此这里我们指向 i*n + j 的元素。超越任何地方的元素flow点。 (正如 Barmar 在评论中指出的那样,这表明 flow 被视为扁平的二维数组,访问 i,j th 元素。)

给定任何指针或指针值表达式,一元 *运算符访问指针指向的值。所以

 *(flow + i*n + j)

的值是 i*n + j过去无论什么flow指向。

当您使用 * 访问指针时通过这种方式,你会得到一个叫做左值的东西,这是一个技术术语,意味着你不仅可以获取指向的值,还可以修改指向的值。值(value)。这正是我们在这里所做的。 C +=运算符就地添加一个值。因此,无论指向的值是什么,我们都会添加值 minFlowPath到它。

要了解更多信息,请阅读指针算术指针间接赋值运算符

关于c++ - *(flow + i*n + j) 在 C 中意味着什么?我不知道这个主题叫什么,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50614491/

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