【扩展知识1】类型与其强制转换

来源:互联网 发布:蛋白粉 手术后 知乎 编辑:程序博客网 时间:2024/05/16 17:01

【扩展知识二】学习一些重要的知识

 

  【扩展目录】

1.      布尔型,浮点型、指针的变量与0值得比较

2.      类型转换

 

 

A:bool变量与0值得比较

  布尔型,用于表示布尔值,即逻辑值TRUE(真)和FALSE (假)。在C语言中非零即为真,零就为假。

  较合理的写法是:

  //测试环境:win7_32+VC++6.0。有的编译器可能不识bool//bool变量与0,1的比较#include <stdio.h> int main( void ){         boolbnum;  //定义bool类型的变量                 bnum=0;  //赋值为0,即假                 if(bnum )         {                   printf("假\n" );         }                 if(!bnum )         {                   printf("真\n" );         }           return 0; }

B:float变量与零值得比较

较合理的比较:

//float变量与零值的比较#include <stdio.h> #define PRECISION 0.000001 int main( void ){         floatscore= 0;                 if(( score>= -PRECISION ) && (score<= PRECISION ) )          {                   printf("score等于0\n" );         }         else         {             printf( "score不等于0\n");           }                   return 0; }


 

C:指针变量与零值得比较

 虽然还没学到指针,这先稍微提一下,后续再讲。

 指针就是一个存放地址的变量。

 int*ptt;

 声明了一个整型指针ptr。ptr是指针,*ptr是ptr的地址里的值。

 

//指针变量与零值的比较#include <stdio.h> int main( void ){         char*ptr= NULL;  //定义一个char类型指针ptr,并初始化为NULL                 if(ptr== NULL )  //NULL在C中被定义为 0。         {            printf( "YES\n" );                 }         else         {                   printf("NO\n" );         }           return 0; }

D:类型转换

 ( 1 )自动类型转换

 

      高       double    ←←    float
       ↑         ↑             
       ↑        long     
       ↑         ↑
       ↑        unsigned
       ↑          ↑
       低        int      ←←   char,short

                [自动转换顺序表]

 

#include <stdio.h> int main( void ){         inta;         intb;                 a=4.5; //浮点型数自定转换为int型         b='A'; //字符'A'也自动转换为int型                 printf("%d\n", a );   // a= 4         printf("%d\n", b );   // b= 65                 return0;}

( 2 )强制类型转换

//强制类型转换#include <stdio.h> int main( void ){         inta= 1;         intb= 2;         intc= 3;         floatx= 4.1;         floaty= 5.9;                 a=( int )y;          //把y强制转换为int型         b=( int )( x+ y );  //把x+ y的和在强制转换为int型         c=( int )x+ y;      //c是先把x强制转换为int,在相加,和再隐式转换为int                 printf("a= %d\n", a );         printf("b= %d\n", b );         printf("c= %d\n", c );                 return0;} 


 

【指尖的微笑】错误在所难免,希望得到大家的指正^-^

转载时保留原文的链接http://oursharingclub.joinbbs.nethttp://blog.csdn.net/mirrorsbeyourself

1 0
原创粉丝点击