社区
C语言
帖子详情
‘++’运算符问题???
ra3
2002-09-18 06:31:09
void main()
{
float x=1,y;
int X=1,Y;
y=++x * ++x;
printf("%f\n",y);
Y=++X * ++X;
printf("%d\n",Y);
}
运行结果是:
6.00000
9
X 的结果怎么不一样?
而输出 ++x 和 ++X 的结果是一样的.
...全文
46
11
打赏
收藏
‘++’运算符问题???
void main() { float x=1,y; int X=1,Y; y=++x * ++x; printf("%f\n",y); Y=++X * ++X; printf("%d\n",Y); } 运行结果是: 6.00000 9 X 的结果怎么不一样? 而输出 ++x 和 ++X 的结果是一样的.
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
11 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
alexxing
2002-09-19
打赏
举报
回复
不需要了解这种原因,因为根本就没有规律可循!
不同的编译器上可能会生成不同的操作。
如果要“举一反三避免”,就根本不要用这种东西
luzhl
2002-09-19
打赏
举报
回复
初学C研究这种问题是很有意思的,很想知道为什么,让编译器生成汇编看看就明白了,不过不同编译器结果不一样。
glassshark
2002-09-19
打赏
举报
回复
不要研究同编译器相关的东西。
要避免写编译器相关的东西,也就是C/C++未规定的东西,它们往往是造成不可移植的原因,而且也常常是浪费你时间和制造错误的祸首。
bigant888
2002-09-18
打赏
举报
回复
那为什么会出现这种情况呢? 我也是这样子的~
如果知道原因就可以举一反三了避免这些问题,不是吗??
CCLIS
2002-09-18
打赏
举报
回复
学习C++何必要用这样令人发晕的语句,C++的语句是灵活,但它是用来做好程序,而不是拿来让人迷惑的,将一个语句分成多个语句执行,结果将会一定。
不要使用具有二义性的语句,在不同的编译器上也可能会生成不同的操作。
用户 昵称
2002-09-18
打赏
举报
回复
楼主的y和Y应该没错吧,我也是6 6
hhp7979
2002-09-18
打赏
举报
回复
如果是c语言的话,x++ 和++x是不一样的,y=x++,就是说x加1再赋值给y
而y=++x,就相反,x本身加1,而y的值就是x没加1的值
fqcd555
2002-09-18
打赏
举报
回复
哈.
up
cmove
2002-09-18
打赏
举报
回复
C语言中对"++"运算只能是整型,没有见过实型自加的,你好好看看谭浩强的书吧
O K?
sjd163
2002-09-18
打赏
举报
回复
通过试验了解你用的系统的x++的规律比问别人更实际。
dreamhead
2002-09-18
打赏
举报
回复
不知道你用的什么编译器,我用gcc在solaris上跑的结果是:
6.000000
6
看来,对于int类型,结果和具体系统相关。
对于float类型++,呵呵,我还真的没这么用过。
建议你看一下《程序设计实践》,尽量用一些常用的手法,避免这种和系统结合比较紧密的做法。
如果你纯粹想玩一下,那没有问题。
C#中常用的
运算符
总结
在C#中常用到的
运算符
有条件
运算符
,is
运算符
,as
运算符
,typeof
运算符
等等,接下来在文章中将为大家具体介绍各个
运算符
的使用方法 条件
运算符
条件
运算符
用( ?: )来表示 condition ? X:Y 上述的语句表示的是如果条件为真 ? 则为 X : 否则为 Y 条件
运算符
可以称为三元
运算符
,是if..else 的简化形式。首先先判断一个条件,如果条件为真,返回第一个值,否则返回第二个值。恰当 的使用三元
运算符
可以使程序更加简洁。 as
运算符
as
运算符
表示的是强制转换,即便是转换失败了也不会抛出异常。需要注意以下两个
问题
(1)它只能用于引用类型 (2)当转换不成功时则返回nu
对+=赋值
运算符
的认识
提到+=,我想大家一定会立刻想到下面的代码: short a=3; a=a+1; a+=3; 问:上面第二行代码和第三行代码在编译时都能通过吗? 老师说:第二行代码在编译时不能通过,第三行代码相当于第二行代码。 这时你晕了吗——既然第三行代码相当于第二行代码,那为什么第二行代码在编译时不能通过呢? 让我来给你讲讲吧:
微服务系列第四季-
运算符
及程序控制语句
微服务应用是分布式开发的主要手段,它很好的解决了高并发等电商平台的
问题
。微服务系列课程是以Java语言为基础,以SpringCloud+SpringBoot为核心,结合Spring、SpringMVC及MyBatis,通过游戏案例、电商案例,以极简...
python中没有
++
和--这两个
运算符
_为什么Python中没有
++
和 –
运算符
?
这不是因为它没有意义; 定义“x
++
”为“x + = 1,评估x的前一个绑定”是非常有意义的。如果你想知道原来的原因,你必须通过旧的Python邮件列表来查询,或者询问那些在那里的人(比如Guido),但是事实certificate这很容易:简单的递增和递减不像其他语言那样需要。 你不经常在Python中编写像for(int i = 0; i < 10;
++
i) ; 而是你for i i...
前置
++
,后置
++
与
运算符
计算顺序
问题
今天无意间看到一个讲关于自加的
问题
,便一发不可收拾,研究了好一阵 。 一道简单的题目引发的思考 该博主从j = (i
++
) + (i
++
) + (
++
i)的输出开始,研究了各编译器的输出结果,并且分析了各个编译器出现结果是如何计算的。先不管其他,下面是我对此
问题
的理解。(1)在size运算中,前置
++
/–的结合优先级最高,后置
++
/–的优先级最小, 所谓结合顺序,就是指分析表达式时操作数与哪
C语言
69,371
社区成员
243,080
社区内容
发帖
与我相关
我的任务
C语言
C语言相关问题讨论
复制链接
扫一扫
分享
社区描述
C语言相关问题讨论
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章