想把*n-2的值取地址传参

img


己知n为整型指针,我想把星n-2的值取地址传参,于是写了&(星n-2),但是出错了,请问正确的格式是什么?

int temp = *n -2;
qw(i,&temp,m);

解决你的问题,点赞采纳,谢谢!

应该不能嵌套

【以下回答由 GPT 生成】

修改代码如下:

#include<stdio.h>

int qw(int* i, int* n, int* m) {
    if (*n >= 2) {
        *n = *n - 2;    // 修改此行
        qw(i, n, m);    // 修改此行
    }
    if (*n == *m)
        printf("%d\n", *i);
    return 0;    // 添加此行
}

int main() {
    int i = 0;
    int n, m;

    scanf("%d", &n);
    m = n;
    qw(&i, &n, &m);
    return 0;    // 添加此行
}

修改的地方如下: 1. 在函数qw内部,将*n的值减去2,需要修改代码为*n = *n - 2;,以正确计算*n-2的值。 2. 在函数qw内部的递归调用中,传入参数n时,应该保持不变,不需要减去2,所以修改为qw(i, n, m);。 3. 在函数qw内部添加缺失的返回语句return 0;,因为函数的返回值类型是int。 4. 在main函数的最后添加缺失的返回语句return 0;

这样修改后,代码能够正确传递*n-2的值作为地址参数。



【相关推荐】



如果你已经解决了该问题, 非常希望你能够分享一下解决方案, 写成博客, 将相关链接放在评论区, 以帮助更多的人 ^-^