CSDN首页 空间 新闻 论坛 Blog 下载 读书 网摘 搜索 .NET Java 视频 接项目 求职 在线学习 买书 程序员 通知
可用分押宝游戏火热进行中... 专题改版:Java Web 专题
CSDN社区
搜索 收藏 打印 关闭
CSDN社区 >  C/C++ >  C++ 语言

int a=0, 则a=(a==0)等于几?对一段程序中的这样一句不大懂。

楼主bnm2891(bnm)2005-06-02 22:47:39 在 C/C++ / C++ 语言 提问

看语句a应该是等于1的,但对下面一段程序中这样一句感到不解  
  oddline   =   0;  
  for   (i=0;   i<subSize;   i+=stride)    
  {  
    oddline   =   (oddline   ==   0);  
     
  for   (j=0;   j<subSize;   j+=stride)    
  {  
      if   ((oddline)   &&   !j)    
          j+=stride;  
    fa[(i   *   size)   +   j]   =scale   *   fractRand   (.5f)   +avgDiamondVals   (i,   j,   stride,   size,   subSize,   fa);  
                       
    }  
   
  这是程序中的一段,不知道oddline   =   (oddline   ==   0);和((oddline)   &&   !j)中的oddline有什么作用,因为在其他程序部分中都没有对oddline进行改变。程序运行的结果是没错的,但我把(oddline   ==   0)改为1或者把((oddline)   &&   !j)中的oddline改为1,程序运行的结果就不一样。  
  不知道是怎么回事。 问题点数:0、回复次数:10Top

1 楼foochow(无聊,灌水......)回复于 2005-06-02 22:54:31 得分 0

oddline和bool值一样吧,true和1,false和0-_-Top

2 楼yesiloveyou(下意识的弯了一下腰,TMD,踩狗屎了)回复于 2005-06-02 22:54:56 得分 0

oddline   =   (oddline   ==   0);  
     
  第一次oddline=0;  
  循环一次后oddline=1;  
  再循环   oddline=0;  
   
  是0   1   0   1   0   1   序列   你改成1   当然会结果不一样了/Top

3 楼sunman1982(冥王星)回复于 2005-06-02 22:58:19 得分 0

这个是要结合上下文看的,你发全点吧Top

4 楼foochow(无聊,灌水......)回复于 2005-06-02 22:59:26 得分 0

1   0   1   0   1   0吧-_-Top

5 楼luo_lei(火云邪神)回复于 2005-06-02 23:12:50 得分 0

在还没循环的时候,oddline=0,当你循环了一次后,oddline的值就变为true(一切非零的数),以后oddline的值就在ture和false之间交替变换.而oddline的值直接回影响第二个循环的结果.所以当你把oddline的值改为1后,那么第一次循环的结果是oddline的值是false而不是ture了,这又回影响第二个循环的结果,所以结果回不一样了.  
   
  不知道对不对!Top

6 楼luo_lei(火云邪神)回复于 2005-06-02 23:13:51 得分 0

搞忘说了,ture是非零,false是零Top

7 楼mccxj(老鼠不逛街)回复于 2005-06-02 23:21:20 得分 0

int   a=0,   则a=(a==0)等于几  
  简单测试了一下。。  
  #include   <iostream.h>  
   
  int   main(void)  
  {  
  int   a=0;  
  a=(a==0);  
  cout<<a;  
  return   0;  
  }  
  结果是1;呵呵。。在c++里边。。true是用1表示。。false用0表示。。。  
  a==0..这个就是真咯。。也就是1咯。。。。Top

8 楼defyer007(深入浅出)回复于 2005-06-02 23:51:04 得分 0

当然是等于1了  
  类的定义中有个默认类型转换函数吧  
  如operator   BOOL([参数])Top

9 楼zdy_8212(zdy_8212)回复于 2005-06-02 23:54:22 得分 0

你的动作是将它看做整型,而它原意是隐式转为BOOL。作为一个标记使用。Top

10 楼mostideal(三甲)回复于 2005-06-03 00:07:45 得分 0

up   一个。。Top

相关问题

  • 为什么我在Dev-C++4.9.9.2中写C++程序时,主程序老是要用int main(), 如果用void main(),则提示:‘main’must return 'int'?
  • 不懂 C++ 的程序员 !!!
  • 这个程序看不懂!!!
  • 谁能读懂这个程序?
  • 这个递归程序看不懂啊
  • 刚学java,这段程序看不懂
  • 看一个程序没看懂,求教
  • 一段小程序看不懂~~
  • 请教一个没看懂的程序~
  • 迷惑,程序基本上都看得懂,按照书上写的程序去烧录程序,结果出错?

关键词

  • 程序

得分解答快速导航

  • 帖主:bnm2891

相关链接

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

广告也精彩

反馈

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