问题描述
int p(int *ptrP){
*ptrP=20;
return *ptrP;
}
int q(int *ptrQ){
*ptrQ=30;
return *ptrQ;
}
int main(){
int answer=0,a=10;
answer=p(&a)+q(&a); // line Alpha,for discussions sake
printf(" answer=%d a=%d ",answer,a );
}
输出:answer=50 a=30;
在 line Alpha answer=q(&a)+p(&a)
中交换 Function 调用导致 answer=50 a=20
,这可以通过说函数调用优先级从左到右来证明,但是当我们将行 alpha 更改为 { {1}} 输出为 answer=p(&a)+a+q(&a);
。
函数调用在什么地方适合优先表? answer=70 a=30
和 foo()+10
是等价的语句吗?
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)