首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >如何在C中一行增加或减少函数调用中的指针参数值?

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

Stack Overflow用户
提问于 2020-07-18 15:14:03
回答 2查看 329关注 0票数 2

我有以下代码:

代码语言:javascript
复制
#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函数中将它们作为参数传递。

我有error: lvalue required as unary ‘&’ operand。另外,我尝试使用x + 1y - 1,而不是x++y++

如何增加xy值,并在foo2函数调用中传递指向它们的指针?有可能吗?

EN

Stack Overflow用户

发布于 2020-07-18 15:38:49

我只想在这里补充几点:

C

在c#中,前缀和后缀增量都返回rvalue。所以,这就是当您尝试在c中获取post/预增量的地址时会出现错误的原因。

C++

但是在c++中,prefix (++x)返回lvaluepostfix(x++)返回rvalue。因此,在c++中,&(++x)是正确的,而&(x++)则抛出错误。

注:

我鼓励你多读一些这方面的内容。它将帮助你更好地理解。

票数 4
EN
查看全部 2 条回答
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/62970173

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档