CSDN首页 空间 新闻 论坛 Blog 下载 读书 网摘 搜索 .NET Java 视频 接项目 求职 在线学习 买书 程序员 通知
IBM Rational 系统开发最佳实践工具包 WebSphere MQ 最佳实践 TOP 15
CSDN社区
搜索 收藏 打印 关闭
CSDN社区 >  C/C++ >  C语言

下面代码输出是多少?

楼主hsyouxishe(金笛玉洁)2006-03-13 22:30:56 在 C/C++ / C语言 提问

#incldue<stdio.h>  
  mian()  
  {  
  int   a,b,c,d;  
  a=10;  
  b=a++;  
  c=++a;  
  d=10*a++;  
  printf("b,c.d:%d.%d",b,c,d);  
  return   0;  
   
  }  
   
  结果是多少,为什么? 问题点数:60、回复次数:18Top

1 楼ykzhujiang(朱朱)回复于 2006-03-13 22:33:51 得分 5

你的代码写得有些错误Top

2 楼ykzhujiang(朱朱)回复于 2006-03-13 22:34:51 得分 0

改正如下  
  #include<stdio.h>  
  main()  
  {  
  int   a,b,c,d;  
  a=10;  
  b=a++;  
  c=++a;  
  d=10*a++;  
  printf("b,c,d:%d,%d,%d",b,c,d);  
   
   
  }Top

3 楼ykzhujiang(朱朱)回复于 2006-03-13 22:38:59 得分 5

结果   b,c,d的值分别是10,12和120  
  ++作为后缀的意思是先对改变量进行运算,然后再对改变量加1  
  所以b=a++的结果就是a先将10付给b,然后自身变为11  
  ++作为前缀的意思是先对自身加1,然后在进行运算  
  因此c=++a的结果就是a先自加1,然后再将结果付给c,所以c=12  
  d=10*a++的道理相同,但是要注意一点就是++运算符的优先级高于*,所以结果为120Top

4 楼sosm(小哲)回复于 2006-03-13 22:49:37 得分 5

运算符优先级  
  一元的+/-最高  
  */%次之  
  二元的+/-低  
  括号就不说了哈Top

5 楼hai_li(何家干)回复于 2006-03-13 22:54:22 得分 5

10       12       120Top

6 楼bojianyu()回复于 2006-03-13 23:05:21 得分 5

上楼的最后一句话说错了,d中的语句和++的优先级没有关系,还是先执行*再执行++.时刻记住,a++的意思是完成a的其他运算(一步)再执行递增运算Top

7 楼iwantfat(rock)回复于 2006-03-13 23:16:07 得分 2

10   12   120Top

8 楼wangmuqq88(挥着翅膀的尼姑)回复于 2006-03-13 23:24:02 得分 5

欢迎大家加群(C/C++)20641933欢迎大家共同学习交流Top

9 楼systemx(-操!老子从不讲脏话的!阿弥陀佛!-)回复于 2006-03-14 10:35:26 得分 10

 
  偶来注释一下  
   
  #include<stdio.h>  
  main()  
  {  
  int   a,b,c,d;  
  a=10;                           /*a=10*/  
  b=a++;                         //   此时a的值仍为10。但在本次运算完成后a的值就是11  
  c=++a;                         //   ++a   是先加一再运算。所以这里a=11+1=12  
  d=10*a++;                 //这里先不管*和++的优先级。因为a++是在运算完成后再加一。所以d的值就是10×12=120  
  printf("b,c,d:%d,%d,%d",b,c,d);  
  }  
  Top

10 楼optimftb()回复于 2006-03-14 12:44:17 得分 2

还搞着方面的游戏啊,哎Top

11 楼ugg(逸学堂(exuetang.net))回复于 2006-03-14 13:31:55 得分 5

int   a,b,c,d;  
  a=10;  
  b=a++;//   b=10,a=10,完成操作后a=11;  
  c=++a;//   c   =   12,a=12;  
  d=10*a++;//   d   =   10*12=120,完成操作后a=13;  
  printf("b,c.d:%d.%d",b,c,d);  
  所以输出为  
  10,12,120Top

12 楼cthiro123(小米稀饭)回复于 2006-03-14 13:40:08 得分 2

10     12       120Top

13 楼hncw13(13)回复于 2006-03-14 13:56:14 得分 0

10   12   120  
  注意运算符的优先次序Top

14 楼zzw820626(偶要分,偶要星星)回复于 2006-03-14 14:17:03 得分 0

10       12       120Top

15 楼xugang_2001(幽明天竹)回复于 2006-03-14 16:35:51 得分 0

10   12   120Top

16 楼yuanchuang(元创)回复于 2006-03-14 16:57:51 得分 5

#incldue<stdio.h>  
  mian()  
  {  
  int   a,b,c,d;  
  a=10;  
  b=a++;     //b   =   10;   a   =   11  
  c=++a;     //   c   =   a   =   12  
  d=10*a++;   //d   =   120;   a   =   13  
  printf("b,c.d:%d.%d",b,c,d);   //   所以结果是:"b,c.d:10.12"  
  return   0;  
   
  }Top

17 楼yuanchuang(元创)回复于 2006-03-14 18:11:03 得分 2

我如果没有记错的话,printf对多出来的变量舍弃,对少了的变量是没有定义。Top

18 楼iewin(风铃声)回复于 2006-03-14 18:33:40 得分 2

10   12   120Top

相关问题

  • 如果输入play(1234),下面这段代码的输出url是多少?
  • 麻烦问一下下面代码中的输出Response.Write "!" 什么意思?
  • 我想用jfreechart写一个通过流输出曲线图的servlet,下面这段代码哪里有问题?
  • 请看下面代码,当用PRINTF时输出次序为什么不正常?请高手解惑
  • 请看下面代码,当用PRINTF时输出次序为什么不正常?请高手解惑
  • 高分求跟踪输出源代码
  • 有关ASCII代码的输出
  • 一个输出代码的问题
  • 求一段输出xml的代码
  • 入门问题:大家看看下面这段代码为何输出的两个文本的颜色不一样????

关键词

  • 执行
  • 运算
  • 优先级
  • 运算符
  • 完成
  • 结果
  • 意思
  • printf
  • 就是
  • 没有

得分解答快速导航

  • 帖主:hsyouxishe
  • ykzhujiang
  • ykzhujiang
  • sosm
  • hai_li
  • bojianyu
  • iwantfat
  • wangmuqq88
  • systemx
  • optimftb
  • ugg
  • cthiro123
  • yuanchuang
  • yuanchuang
  • iewin

相关链接

  • C/C++ Blog
  • C/C++类图书
  • C/C++类源码下载

广告也精彩

反馈

请通过下述方式给我们反馈
反馈
提问
网站简介|广告服务|VIP资费标准|银行汇款帐号|网站地图|帮助|联系方式|诚聘英才|English|问题报告
北京创新乐知广告有限公司 版权所有, 京 ICP 证 070598 号
世纪乐知(北京)网络技术有限公司 提供技术支持
Copyright © 2000-2008, CSDN.NET, All Rights Reserved
GongshangLogo