当前位置: 技术问答>java相关
c小问题
来源: 互联网 发布时间:2015-03-02
本文导语: 本人是C语言初学者,想问问各位下面这个程序的意思,请各位多多指教: main() { int x,y,z; x=y=z=0; ++x||++y&&++z; printf("x=%dt y=%dt z=%dt",x,y,z); } 运行后输出x=1 y=0 z=0 请问是怎么得来的(==与&&优先级别...
本人是C语言初学者,想问问各位下面这个程序的意思,请各位多多指教:
main()
{
int x,y,z;
x=y=z=0;
++x||++y&&++z;
printf("x=%dt y=%dt z=%dt",x,y,z);
}
运行后输出x=1 y=0 z=0
请问是怎么得来的(==与&&优先级别是相同的,而++优先与==)
main()
{
int x,y,z;
x=y=z=0;
++x||++y&&++z;
printf("x=%dt y=%dt z=%dt",x,y,z);
}
运行后输出x=1 y=0 z=0
请问是怎么得来的(==与&&优先级别是相同的,而++优先与==)
|
这个是由于程序短路而的出来的结果
在++x就能的出这个boolean表达式肯定为1,因为||表示或,
那么c和java都回提供这种短路,减少程序运行资源!所以后面的两个就不在运行了:)
可给我多少分?
在++x就能的出这个boolean表达式肯定为1,因为||表示或,
那么c和java都回提供这种短路,减少程序运行资源!所以后面的两个就不在运行了:)
可给我多少分?
|
c语言对这类用于判断的语句作了优化
x||y是
如果x是1,则肯定结果是1,则后面不运行了。
同理 x&&y
如果x是0 则结果肯定是0,后面的也不运行了。
在实际编程中,我们要避免这么使用
x||y是
如果x是1,则肯定结果是1,则后面不运行了。
同理 x&&y
如果x是0 则结果肯定是0,后面的也不运行了。
在实际编程中,我们要避免这么使用
您可能感兴趣的文章:
本站(WWW.)旨在分享和传播互联网科技相关的资讯和技术,将尽最大努力为读者提供更好的信息聚合和浏览方式。
本站(WWW.)站内文章除注明原创外,均为转载、整理或搜集自网络。欢迎任何形式的转载,转载请注明出处。
本站(WWW.)站内文章除注明原创外,均为转载、整理或搜集自网络。欢迎任何形式的转载,转载请注明出处。