当前位置: 代码迷 >> C语言 >> 问道小题
  详细解决方案

问道小题

热度:330   发布时间:2006-12-26 23:54:22.0
问道小题
下列程序段的输出结果是________
int m=1,n=2,*ptr1=&m,*ptr2=&n;
printf("%d%d%d%d",*ptr1,*ptr2,*ptr1=*ptr2+*ptr1,*ptr1=*ptr2+*ptr1);

A1 2 1 1 B 1 2 3 3 C1 2 3 4 D 1 2 3 5

怎么我的结果没有跟任何一个选项是一样的呢?
求达人指教
搜索更多相关的解决方案: int  结果  选项  

----------------解决方案--------------------------------------------------------

应该是 5 2 5 3才对


----------------解决方案--------------------------------------------------------
上楼说的从右到做运算的结果吧`~~
如果是从做到右~~就选D了`~


printf中~~
*ptr1=m.*ptr2=n
----------------解决方案--------------------------------------------------------
运行的结果是 5 2 5 3

大家再看看下面这个程序:
int m=1;
printf("%d%d%d%d\n",m,++m,m++,m++);
printf("%d",m);

结果是:
2211
4

有人能解释一下吗?
----------------解决方案--------------------------------------------------------
int m=1;
printf("%d%d%d%d\n",m,++m,m++,m++);
printf("%d",m);

我的编辑器
结果是
4421
4
郁闷了
----------------解决方案--------------------------------------------------------
int m=1,n=2,*ptr1=&m,*ptr2=&n;
 这个*ptr1=&m,*ptr2=&n应该错误了
应该是ptr1=m,ptr2=n;即可了!
你在试试应该可以了

----------------解决方案--------------------------------------------------------

楼上的意思我没明白
指针难道不是这样定义的啊?
这道题目我的运行结果和2楼一样
所以TC的工作应该是从右到左的吧


----------------解决方案--------------------------------------------------------
  相关解决方案