gpt4 book ai didi

c - 如何成功地将二维数组传递给函数?

转载 作者:行者123 更新时间:2023-11-30 19:43:39 25 4
gpt4 key购买 nike

GNU GCC 编译器这是一个函数:int sumsintriangle(int *a,int n)其中 a 是 n*n 矩阵。 出于某种目的我添加了

if(*(a+(i+1)*n+(j+1)) > *(a+(i+1)*n+j))

我的代码正常工作的条件;因为条件对于正确的值是正确的。 但对于相同的代码,当我添加

sum=sum + *(a+(i+1)*n+(j+1));

然后它不起作用(例如;假设 sum 最初是 1 而 *(a+(i+1)*n+(j+1) 是 4 )然后求和它应该给我 5..但它给我 1 作为输出...为什么? 甚至,当我调用相同的值 *(a+(i+1)*n+(j+1)) 时在printf函数,只是为了查询,它给我 4(原始值)作为输出...?

为什么会这样,*(a+(i+1)*n+(j+1))printf 正常工作但是当我用 sum 调用它时,它给了我不正确的值?

最佳答案

如果您可以正确发布您的功能,可能会更容易为您提供帮助。但我认为当您在表达式之前添加 * 时会出现错误,这将为您提供该表达式的内容,因此请务必正确获取值。示例:

      int a[]; //declare an array
a[n] // will give you the element in position 9 of the array.
*a // will give you the first element, cause an array can be treated as a pointer (indeed it is).

希望这个回答对你有帮助。如果没有请告诉我。祝你好运!

关于c - 如何成功地将二维数组传递给函数?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29368935/

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