c语言 return a++

return a++ 中的++有没有作用??为什么??
2025-12-06 07:09:21
推荐回答(4个)
回答1:

不是没作用,这涉及到前置自增和后置自增的问题
前置自增:++a,返回的是a的引用,而具体步骤是先自增a,再返回a的引用
后置自增:a++,返回的是a的临时拷贝,具体步骤是先返回a的临时拷贝,再自增a
所以你看到的是a在自增前的临时拷贝

回答2:

如果a是函数内部临时变量,就没用。
如果a是全局变量,或者a是静态变量,就有用。

回答3:

楼上回答正确,我再加个例子
#include
int A=3;
int R(int a)
{
return a++;
}
int main()
{
int a=3;
int b=0,c=0;
b=R(a);
c=R(A);
printf("b=R(a)=%d,此中的a是一个局部变量,执行完R(a)中的a++后,a的值为",b,a);
printf("c=R(A)=%d,此中的A是一个全局变量,执行完R(A)中的A++后,A的值为",b,A);
return 0;

}
输出结果
……
你调试一下

回答4: