问道小题
下列程序段的输出结果是________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
怎么我的结果没有跟任何一个选项是一样的呢?
求达人指教
----------------解决方案--------------------------------------------------------
应该是 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的工作应该是从右到左的吧
----------------解决方案--------------------------------------------------------