gpt4 book ai didi

c - 将地址传递给函数,修改后值没有改变

转载 作者:行者123 更新时间:2023-11-30 18:27:33 25 4
gpt4 key购买 nike

代码如下:

该函数用于反转数组。

void rev(int* nums, int count){

for(int i = 0; i<count; i++){
int temp = *(nums+i);
*(nums+i) = *(nums+count-1-i);
*(nums+count-1-i) = temp;
}
}

这个是为了实现 rev() 函数。

void rotate(int* nums, int numsSize, int k) {
int*q = nums;
int count = numsSize - k;
rev(nums, count);
q = q+k;

rev(q, k);
rev(nums, numsSize);

}

我在rev()中传递了数组的地址,但是当它跳出rev()的for循环时,nums[] 没有改变。

我的代码有什么问题吗?

最佳答案

您的rev()将数组反转两次,即数组保持原来的状态。

您可以通过更改循环条件 i<count 来解决此问题至i<count-1-i .

关于c - 将地址传递给函数,修改后值没有改变,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54970690/

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