gpt4 book ai didi

c - 如何在一行中增加或减少 C 函数调用中的指针参数值?

转载 作者:行者123 更新时间:2023-12-05 08:38:22 27 4
gpt4 key购买 nike

我有以下代码:

#include <stdio.h>

int foo2(int *px, int *py)
{
int sum = *px + *py;
*px = *px + 1;
*py = *py - 1;
printf("foo2 : res=%d x=%d y=%d\n", sum, *px, *py);
return sum;
}

int main() {
int x = 4, y = 7, res;
res = foo2(&(x++), &(y--));
printf("%d", res);

return 0;
}

我需要增加 x,减少 y,然后我需要将它们作为参数传递给 foo 函数。

我有错误:左值需要作为一元“&”操作数。我还尝试使用 x + 1y - 1 而不是 x++y++

如何在 foo2 函数调用中递增 xy 值并将指针传递给它们?可能吗?

最佳答案

您可以使用逗号运算符:

res = foo2((x++, &x), (y--, &y));

但是这不是很可读,所以除非你有很好的理由,否则最好将它写成三个单独的语句:

x++;
y--;
res = foo2(&x, &y);

关于c - 如何在一行中增加或减少 C 函数调用中的指针参数值?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/62970173/

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