1
我有以下代码:在函数参数递增指针
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()+ 1)' –
@KerrekSB :你说得对,那是有效的。为什么编译器不解释++和+1? – Phat
因为您无法写入临时表达式。 – Joshua