Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/c/71.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
*(flow&x2B;i*n&x2B;j)在C中是什么意思?我不知道这个话题叫什么 我对C和C++编程很陌生,但是我在算法类中看到了(我从一个面向java的学校转移到一个面向C++的课程),我不知道这意味着什么: *(flow + i*n + j) += minFlowPath;_C++_C - Fatal编程技术网

*(flow&x2B;i*n&x2B;j)在C中是什么意思?我不知道这个话题叫什么 我对C和C++编程很陌生,但是我在算法类中看到了(我从一个面向java的学校转移到一个面向C++的课程),我不知道这意味着什么: *(flow + i*n + j) += minFlowPath;

*(flow&x2B;i*n&x2B;j)在C中是什么意思?我不知道这个话题叫什么 我对C和C++编程很陌生,但是我在算法类中看到了(我从一个面向java的学校转移到一个面向C++的课程),我不知道这意味着什么: *(flow + i*n + j) += minFlowPath;,c++,c,C++,C,我不知道这个指针叫什么。我想了解这意味着什么以及存储了什么的逻辑。非常感谢。 请重定向我。如果没有更多的上下文,很难确定,但是给出了表达式 *(flow + i*n + j) += minFlowPath; flow很可能是一个指针。子表达式flow+i*n+j构成指针算法。将指针和整数相加将生成一个新指针,指向超出原始指针计数的元素,因此这里我们将指向超出flow点的i*n+j元素。(正如Barmar在评论中指出的,这表明flow被视为一个平坦的2D数组,访问i,jth元素。) 给定任何指

我不知道这个指针叫什么。我想了解这意味着什么以及存储了什么的逻辑。非常感谢。
请重定向我。

如果没有更多的上下文,很难确定,但是给出了表达式

 *(flow + i*n + j) += minFlowPath;
flow
很可能是一个指针。子表达式
flow+i*n+j
构成指针算法。将指针和整数相加将生成一个新指针,指向超出原始指针计数的元素,因此这里我们将指向超出
flow
点的
i*n+j
元素。(正如Barmar在评论中指出的,这表明
flow
被视为一个平坦的2D数组,访问
i,j
th元素。)

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

 *(flow + i*n + j)
i*n+j
经过
flow
指向的值

当您以这种方式使用
*
访问指针时,会得到一个称为左值的东西,这是一个技术术语,意味着您不仅可以获取指向的值,还可以修改指向的值。这正是我们在这里要做的。C的
+=
运算符在适当的位置向值添加。因此,无论指向的值是什么,我们都将值
minFlowPath
添加到它


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

首先
*(flow+i*n+j)
表示您没有提供
flow
i
n
j
的声明和定义。请提供一些上下文,没有相关的信息,你的问题太广泛。强烈强烈建议自己抓取并熟悉C++(不要与C混淆),否则当课程全面展开时,你会完全被忽略。一门像样的算法课程已经够难了。同时学习C++并没有很好地引用这一点是一个很好的方法,必须同时上两次课。如果同时购买课本和食物是个问题,因为它经常是学生的,所以这是一个很好的止损点的链接,因为你已经熟悉了编程。它是简洁的,但它是免费的。这基本上是把代码<流>代码>作为一个指向行数组的2-D数组的指针,并且递增<<代码>流[i] [j] < /代码>。是的,这是一个C的事情,而不是C++。在C++中,您可能只会超载[]。更准确地说,乘法操作符<代码> */COD>具有最高优先级,所以<代码> i <代码>绑定到<代码> n< /代码>,<代码> > **n>代码>。因此,
+
运算符具有从左到右的关联性,因此接下来计算
flow+i*n
,表达式的结果与
flow
的指针类型相同。然后计算结果
+j
,结果同样是相同的指针类型。这意味着严格来说,
i*n+j
永远不会被计算。这有关系吗?好吧,
i*n+j
理论上可能会产生整数溢出,而指针算法不一定会出现这种情况。