簡單問題,為什麼同樣的代碼,結果不一樣呢??

sangzier 2003-08-22 02:17:52
代碼段1:

#include < iostream.h >

int s1 ( int & );

void main ( )
{
int x = 5;

cout << s1 ( x ) << endl;
cout << x << endl;
}

int s1 ( int &abc )
{
return abc *= abc;
}



代碼段2:

#include < iostream.h >

int s1 ( int & );

void main ( )
{
int x = 5;

cout << s1 ( x ) << endl << x << endl;
}

int s1 ( int &abc )
{
return abc *= abc;
}


代碼段1運行結果:
25
25


代碼段2運行結果:

25
5



菜鳥的問題來了,為什麼結果不一樣呢??
前3位答對者有分:))

...全文
62 12 打赏 收藏 转发到动态 举报
写回复
用AI写文章
12 条回复
切换为时间正序
请发表友善的回复…
发表回复
sangzier 2003-08-22
  • 打赏
  • 举报
回复
謝謝大家的解答~~~~

請收分~~~
nirvana_li 2003-08-22
  • 打赏
  • 举报
回复
同意!
GhostAdz 2003-08-22
  • 打赏
  • 举报
回复
严重同意 sevecol(看什么看...)
第一个是先s1(x)再x,结果就是25,25
第二个是先(x)再s1(x)结果就是25,5
ppm07 2003-08-22
  • 打赏
  • 举报
回复
楼主执行下面一段程序的话就更能体会到楼上所说的了。
#include < iostream.h >

int s1 ( int & );

int s2 ( int &s )
{
return s=2;
}

void main ( )
{
int x = 5;

cout<< s1 ( x )<< endl<< s2(x)<<endl;
}

int s1 ( int &abc )
{
return abc *= abc;
}
Bandry 2003-08-22
  • 打赏
  • 举报
回复
这个代码并不是一样的啊
注意cout执行的顺序啊
sevecol 2003-08-22
  • 打赏
  • 举报
回复
第一个是先s1(x)再x,结果就是25,25
第二个是先(x)再s1(x)结果就是25,5
sangzier 2003-08-22
  • 打赏
  • 举报
回复
那麼解析完了執行不會影響結果嗎?
luohualiushui 2003-08-22
  • 打赏
  • 举报
回复
不错
先x,然后sl(x)
wbh0360 2003-08-22
  • 打赏
  • 举报
回复
cout << s1 ( x ) << endl << x << endl;
从右向左解析,然后从左向右执行,所以罗
5956 2003-08-22
  • 打赏
  • 举报
回复
能把解析执行的顺序说的具体点儿吗?
zhang,qiuping 2003-08-22
  • 打赏
  • 举报
回复
up,同意楼上的。
sevecol 2003-08-22
  • 打赏
  • 举报
回复
cout << s1 ( x ) << endl;
cout << x << endl;

cout << s1 ( x ) << endl << x << endl;
是有区别的。

注意解析执行的顺序。

69,373

社区成员

发帖
与我相关
我的任务
社区描述
C语言相关问题讨论
社区管理员
  • C语言
  • 花神庙码农
  • 架构师李肯
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧