|
网站首页
|
业界新闻
|
小组
|
威客
|
人才
|
下载频道
|
博客
|
代码贴
|
在线编程
|
编程论坛
|
登录
注册
短消息
我发表的主题
我参与的主题
我收藏的贴子
我上传的附件
我下过的附件
编辑个人资料
我的博客
用户控制面板
搜索
道具
恢复默认风格
碧海青天
秋意盎然
棕红预览
粉色回忆
蓝雅绿
紫色淡雅
青青河草
e点小镇
橘子红了
红红夜思
水晶紫色
雪花飘飘
新年快乐
风格
短消息
论坛展区
帮助
编程论坛
→
开发语言
→
『 C语言论坛 』
→ 一个简单的问题,貌似挺有趣,求解
我的收件箱(0)
欢迎加入我们,一同切磋技术
用户名:
密 码:
共有
825
人关注过本帖
标题:
一个简单的问题,貌似挺有趣,求解
只看楼主
加入收藏
耀耀爱学习
等 级:
论坛游民
帖 子:6
专家分:14
注 册:2012-5-21
结帖率:
100%
楼主
收藏
已结贴
√
问题点数:20 回复次数:11
一个简单的问题,貌似挺有趣,求解
#include<stdio.h>
int main()
{
int k=11;
k=1/3*k++;
printf("%d\n",k);
return 0;
}
输出的结果是1
但为什么改为
#include<stdio.h>
int main()
{
int k=11;
printf("%d\n",1/3*k++);
return 0;
}
结果却是0呢
我是新手,求助
搜索更多相关主题的帖子:
return
2012-06-27 09:13
举报帖子
使用道具
赠送鲜花
全世界安静
等 级:
论坛游民
帖 子:104
专家分:65
注 册:2012-6-4
第
2
楼
收藏
得分:3
k=1/3*k++;//1/3=0,0*k=0,表达式值为0,k=0,然后k自增,k=1
printf("%d\n",k);//输出1
printf("%d\n",1/3*k++);1/3=0,0*k=0.表达式值为0,输出0
2012-06-27 09:44
举报帖子
使用道具
赠送鲜花
震中地带
等 级:
职业侠客
威 望:
2
帖 子:171
专家分:359
注 册:2012-3-26
第
3
楼
收藏
得分:3
首先牵扯到运算符优先级问题,k++意思是先参与表达式运算,再自加1,其次就是表达式问题了
k=1/3*k++;
printf("%d\n",k);
这里的k参与的是k=1/3*k的表达式这里k=0;然后k自加1;结果输出的是k,所以输出为1
printf("%d\n",1/3*k++);这里跟上面的区别在printf输出的是表达式1/3*k的值而不是k的值
2012-06-27 10:16
举报帖子
使用道具
赠送鲜花
耀耀爱学习
等 级:
论坛游民
帖 子:6
专家分:14
注 册:2012-5-21
第
4
楼
收藏
得分:0
回复 3楼 震中地带
不是++运算符的运算等级优先吗??
怎么会是k=0后在自增的
2012-06-28 00:19
举报帖子
使用道具
赠送鲜花
TonyDeng
等 级:
贵宾
威 望:
304
帖 子:25859
专家分:48889
注 册:2011-6-22
第
5
楼
收藏
得分:3
好好看看书本上关于++前缀、后缀的用法!
授人以渔,不授人以鱼。
2012-06-28 00:43
举报帖子
使用道具
赠送鲜花
震中地带
等 级:
职业侠客
威 望:
2
帖 子:171
专家分:359
注 册:2012-3-26
第
6
楼
收藏
得分:3
回复 4楼 耀耀爱学习
就是因为自加运算符优先级高,所以K++告诉编译器先将k参与表达式运算后再自加好好看看自加自减运算符吧。
2012-06-28 05:49
举报帖子
使用道具
赠送鲜花
qq383264679
等 级:
论坛游侠
帖 子:155
专家分:130
注 册:2012-1-19
第
7
楼
收藏
得分:1
好多人都死在++
前和++后上
2012-06-28 08:44
举报帖子
使用道具
赠送鲜花
震中地带
等 级:
职业侠客
威 望:
2
帖 子:171
专家分:359
注 册:2012-3-26
第
8
楼
收藏
得分:2
回复 7楼 qq383264679
其实仔细花个半小时全身心去投入,完全可以搞定它
2012-06-28 09:09
举报帖子
使用道具
赠送鲜花
TonyDeng
等 级:
贵宾
威 望:
304
帖 子:25859
专家分:48889
注 册:2011-6-22
第
9
楼
收藏
得分:5
以下是引用
耀耀爱学习
在2012-6-28 00:19:58的发言:
不是++运算符的运算等级优先吗??
怎么会是k=0后在自增的
++k,保证+1操作在求取k值之前执行,k++,
只
保证+1操作在
下一行
执行(注意:是在程序代码的下一行,不是在同一行)。
授人以渔,不授人以鱼。
2012-06-28 12:46
举报帖子
使用道具
赠送鲜花
耀耀爱学习
等 级:
论坛游民
帖 子:6
专家分:14
注 册:2012-5-21
第
10
楼
收藏
得分:0
回复 9楼 TonyDeng
懂啦,谢谢了各位
之前一直以为k=1/3*k++,+ +是在使用了k之后在赋值给左边之前k之前运行了,也就是这条赋值语句中的++可以省略,原来错了
谢谢各位大神
2012-06-28 20:54
举报帖子
使用道具
赠送鲜花
12
1/2页
1
2
快速回复:
一个简单的问题,貌似挺有趣,求解
数据加载中...
关于我们
|
广告合作
|
编程中国
|
清除Cookies
|
TOP
|
手机版
编程中国
版权所有,并保留所有权利。
Powered by
Discuz
, Processed in 0.016718 second(s), 7 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved