1. #import <Foundation/Foundation.h> 
  2.   
  3.  int a,b,c;//静态变量 
  4.   
  5. int main (int argc, const char * argv[]) 
  6.  { 
  7.       
  8.      NSLog(@"BOOL type size:%d",sizeof(BOOL));//typedef signed char BOOL 
  9.         
  10.      if(FALSE == 0)//#define FALSE 0 
  11.      { 
  12.          NSLog(@"FALSE == 0 FALSE is %d",FALSE); 
  13.      } 
  14.      else 
  15.      { 
  16.          NSLog(@"FALSE != 0"); 
  17.      } 
  18.       
  19.      if(TRUE == 1)//#define TRUE 1 
  20.      { 
  21.          NSLog(@"TRUE == 1 TRUE is %d",TRUE); 
  22.      } 
  23.      else 
  24.      { 
  25.          NSLog(@"TRUE !== 1"); 
  26.      } 
  27.       
  28.      BOOL bool_var;//check BOOL is signed char or not? 
  29.      char c = 128;  
  30.      bool_var = c; 
  31.      NSLog(@"%d",bool_var); 
  32.       
  33.      //测试objc中是否也将0作为真非0作为假。测试结果跟c一样。所以objec中的BOOL类型应该只是定义来作为一个规范。 
  34.      int is_bool = -1; 
  35.      if(is_bool) 
  36.      { 
  37.          NSLog(@"非0直都是true"); 
  38.      } 
  39.       
  40.      //静态变量和自动变量(变量的存储类型) 
  41.      int  d,e;//自动变量 
  42.      NSLog(@"d=%d  e=%d a=%d b=%d c=%d",d,e,a,b,c);//输出结果显示,跟c一样,静态变量会自动初始化为0,自动变量的值是一个“随机”数 
  43.       
  44.      //测试变量的作用域代码块作用域 
  45.      if(TRUE) 
  46.      {         
  47.        int  mm = 123; 
  48.      } 
  49.      NSLog(@"mm=%d",mm);//mm定义在子代码块内,外部不能访问。编译这段代码时将提示“mm”undeclared 
  50.       
  51.      return 0; 
  52.  } 

输出结果:

 

 
      
  1. 2011-05-21 14:18:52.474 console[1766:903] BOOL type size:1 
  2. 2011-05-21 14:18:52.477 console[1766:903] FALSE == 0 FALSE is 0 
  3. 2011-05-21 14:18:52.477 console[1766:903] TRUE == 1 TRUE is 1 
  4. 2011-05-21 14:18:52.478 console[1766:903] -128 
  5. 2011-05-21 14:18:52.478 console[1766:903] 非0直都是true 
  6. 2011-05-21 14:18:52.479 console[1766:903] d=32767  e=1606416680 a=0 b=0 c=-128