gpt4 book ai didi

c - 递增函数参数中的指针

转载 作者:太空宇宙 更新时间:2023-11-04 02:53:33 24 4
gpt4 key购买 nike

我有以下代码:

int x;
int * xPtr = &x;

int * Get_xPtr(void);
void someFunction(int * y);

int * Get_xPtr(void)
{
return xPtr;
}

void someFunction(int * y)
{
...
...
}

void main(void)
{
someFunction(++Get_xPtr());
}

这段代码在函数 Get_xPtr() 的返回值(地址)没有增加的情况下编译得很好,但是随着增加我得到了错误:

“错误:需要左值作为递增操作数”

我想这是不允许的语法,但为什么呢?有没有其他方法可以做到这一点,或者我需要:

int * tempPtr = GetxPtr();
tempPtr++;
someFunction(tempPtr);

最佳答案

someFunction(++Get_xPtr()); 

++Get_xptr() 需要左值来存储返回值。

简单的例子会说明一些问题

int i=0;
++i; ==>i=i+1; //result stored in i.

我可以改变的变量

++5; //where is lvalue ?

你可以使用

someFunction(Get_xPtr()+1); 

关于c - 递增函数参数中的指针,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19693604/

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