设为首页
收藏本站
开启辅助访问
切换到窄版
登录
立即注册
中问网首页
我的收藏
站长博客
搜索
搜索
本版
帖子
用户
第一问答网
»
论坛
›
中问网
›
问答
›
C语言中的自增自减问题 求大神解释 高分。。 ...
返回列表
发新帖
C语言中的自增自减问题 求大神解释 高分。。
[复制链接]
11
|
3
|
2011-1-20 21:23:14
|
显示全部楼层
|
阅读模式
有两个题目*是乘号
main()
{float a=1,b;
b=++a*++a;
printf(“%f\n”,b)
;
第二个main()
{int x=5,y;
y=++x*++x;
printf(“y=%d\n”,y)
第一题答案是6.000000 第二题答案是49我就想知道第一个的6和第二个的49是怎么得出来的比如第一个是不是2*3=6为什么我感觉这两个主体差不多 但是思想不一样。。。初学C语言希望大神们赐教
回复
使用道具
举报
千问
|
2011-1-20 21:23:14
|
显示全部楼层
首先我你要要确定,自加自减的优先级要比要比算术运算符的优先级高,也就是说先计算自加自减;(1)a的初值为1,前面一个"++a"为2=1+1,后面一个”++a“为3=2+1,最后b=2*3=6;(2)这个题目和上面的一题是一个类型的,你上面的答案有错误,我重新给你解释一下。
x的初值为5,前面一个"++x"为6=5+1,后面一个”++x“为7=6+1,最后b=6*7=42;
回复
使用道具
举报
千问
|
2011-1-20 21:23:14
|
显示全部楼层
++的优先级比*高,先进行自增运算再相乘。。。。。第一题中,初值a=1,则++a=2,这里是第一个++a。。到了第二个++a中,a经过第一个++a已经变成2,再自增就变成3,所以b=2*3=6.。。第二题的y=...语句应该不是这样子你再仔细看看,否则就和第一题一摸一样(除了数值类型和输出样式)了
回复
使用道具
举报
千问
|
2011-1-20 21:23:14
|
显示全部楼层
问一下,你确定第二个是这个样子的?
回复
使用道具
举报
返回列表
发新帖
高级模式
B
Color
Image
Link
Quote
Code
Smilies
您需要登录后才可以回帖
登录
|
立即注册
本版积分规则
发表回复
回帖后跳转到最后一页
千问
主题
0
回帖
4882万
积分
论坛元老
论坛元老, 积分 48824836, 距离下一级还需 -38824837 积分
论坛元老, 积分 48824836, 距离下一级还需 -38824837 积分
积分
48824836
加好友
发消息
回复楼主
返回列表
问答
热门排行