C语言漫谈(二)

来源:互联网 发布:出国翻译官软件 编辑:程序博客网 时间:2024/05/16 04:40

一.布尔类型

需要注意的是在C 89中并没有布尔类型,只在C 99中存在.而 C 工程支持 C89 ,OC 工程支持C99

1.两种数值:
bool true (真) false(假) C 语言
BOOL YES (真) NO (假) OC语言

2.真和假的表示
C 语言 非 0 即为真 0就是假
OC语言 YES 定义为1 NO 定义为0

3.作用.
主要用于分支语句和循环语句的判断
举例

    BOOL a1 = YES;    BOOL a2 = NO;    printf("a1=%d",a1);    printf("a2=%d",a2);    BOOL a3 = YES;    BOOL a4 = NO;    printf("%d %d",a3,a4);

二.关系运算

关系运算符
1.用于两个数的比较 ;
2.关系运算符的运算结果 : 真\假.使用BOOL 类型变量来接受结果 ;
3.关系表达式 : 由常量,变量和关系运算符组成.
举例:

    BOOL a1 = 5 > 3;//结果为YES    printf("%d",a1);    BOOL a2 = 5 < 3;//结果为NO    printf("%d",a2);//定义两个人的年龄,然后进行比较,再自定义一个BOOl类型的变量来接收结果    int age1 = 0, age2 = 0;    scanf("%d %d",&age1,&age2);    BOOL a = age1 > age2;    printf("%d",a);    //定义三个变量,然后将三个变量进行比较,定义一个BOOL类型的变量来接收结果    int a1 = 0,a2 = 1, a3 = 2;    BOOL a4 = a1 > a2 >a3;    printf("%d",a4); // 大于等于,小于等于    BOOL r1 = 5 >= 5;//结果为假    printf("%d",r1);    BOOL r2 = 6 <= 1;    printf("%d",r2);  //  等于== 不等于!=    BOOL r3 = 7 == 8;    BOOL  r4 = 29 != 29;    printf("%d %d",r3,r4);   // 注意:==(双等号判断左右两边值是否相等),左右两边可以是常量或变量    //=(单等号是将右边的值付给左边的变量)左侧一定是变量

三.逻辑运算符

逻辑运算符:
1.逻辑与 逻辑或 逻辑非
2.逻辑运算的结果有两种 – 真\假.通常用BOOL变量来接收.
3.逻辑表达式:由常量,变量和逻辑运算符组成.
*逻辑与 &&
形式:表达式1 && 表达式2
运算规则:
(1)先执行表达式1,后执行表达式2.
(2)表达式1和表达式2结果同为真,才为真,一假即假.
(3)短路现象:表达式1的结果为假就不执行表达式2.
举例

//先定义两个变量,然后将两个变量进行比较,并使用逻辑与进行判断.用BOOL类型变量来接受    int a = 10,b = 20;    BOOL r1 = (a<b) && (b==3);    printf("%d",r1);

*逻辑或 ||
形式:表达式1 || 表达式2
运算规则
(1)先执行表达式1,后执行表达式2
(2)表达式1和表达式2的结果同为假,才为假,一真即真.
(3)短路现象:表达式1若为真,就不执行表达式2.
举例

    int a = 10,b = 20;    BOOL r1 = (a<b) || (b==3);    printf("%d",r1);    BOOL r2 = (a==3) || (b>a);    BOOL r3 = (a>3) || (b>a);    printf("%d %d",r2,r3);//短路现象    BOOL r4 = (a<5) || (a++);    BOOL r5 = (a>5) || (a++);

*逻辑非 !
(1)取反运算.
(2)运算规则:对真假取反

    BOOL a = YES;    BOOL b = !a;    printf("a=%d b=%d",a,b);    BOOL c = NO,d = !c;    printf("c=%d d=%d",c,d);

最后注意内容
运算符的优先级
算数运算符 > 关系运算符 > 逻辑运算符 >赋值运算符
举例

    int a = 3,b = 4, c =5;    BOOL r1 = a + b > c && b == c;    BOOL r2 = a || (b + c && b - c);//b-c不为0极为真    printf("%d %d\n",r1,r2);
0 0
原创粉丝点击