首页 > 技术文章 > c语言学习之基础知识点介绍(五):关系运算式和逻辑运算式

bobo-pcb 2015-10-23 11:22 原文

本节主要说关系运算式和逻辑运算式。 

一、关系运算式

1、等于(==):判断左边的表达式是否等于右边的表达式

2、大于(>):判断左边的表达式是否大于右边的表达式

3、大于等于(>=):判断左边的表达式是否大于等于右边的表达式

4、小于(<):判断左边的表达式是否小于右边的表达式

5、小于等于(<=):判断左边的表达式是否小于等于右边的表达式

6、不等于(!=):判断左边的表达式是否不等于右边的表达式

 

//注意:c语言中,关系运算所得结果只有0和1,0代表false(假),1代表true(真)。
int num1 = 4;
int num2 = 7;
int result = 0;//默认为0

//等于(==):
result = num1 == num2;
printf("result = %d \n",result);//输出0

//大于(>):
result = num1 > num2;
printf("result = %d \n",result);//输出0

//大于等于(>=):
result = num1 >= num2;
printf("result = %d \n",result);//输出0

//小于(<):
result = num1  < num2;
printf("result = %d \n",result);//输出1

//小于等于(<=):
result = num1 <= num2;
printf("result = %d \n",result);//输出1

/不等于(!=):
result = num1 != num2;
printf("result = %d \n",result);//输出1

 

 

二、逻辑运算符

//逻辑运算式的结果也只有0和1,0代表false(假),1代表true(真)
//注意:c语言中任何非0数字都为真。
int num1= 6;
int num2= 7;
int result = 0;
//1、&&:逻辑与,
result = num1>num2&&num1<num2;
printf("result = %d \n",result);
//输出0,因为有一个是0,所以整个表达式的结果就是0。一假则假

//2、||:逻辑或,
result = num1>num2 || num1<num2;
printf("result = %d \n",result);
//输出1,因为有一个是1,所以整个表达式的结果就是1。一真就真

//3、!:逻辑非,
result = !(num1>num2);
printf("result = %d \n",result);
//输出1,因为是取反,真变假,假变真。

//断路的问题
result = ++num1 || num2++;
printf("num1= %d num2 = %d result= %d",num1,num2,result);
//输出 7,7,1,因为任何非0 的数字都是真,所以当程序执行到++num1的时候就为真,后面的num2++不会执行。

int num 1= -1;int num2 =20;
result = num1++ || num2++;
printf("num1= %d num2 = %d result= %d",num1,num2,result);
//输出 0,20,1,后缀++会先用原先的值进行判断,-1为真,所以就是真,后面的值不会执行。如果是前缀++结果就是0,21,1

//逻辑与(&&)的运算可以自己去试试,但是得注意的是,如果&&前面的表达式为假,后面的就不会执行。只有当前面的为真,才会执行后面的表达式。

//总结:因为&&是一假则假,所以右边的表达式不会执行,||是一真则真,所有右边的表达式不会执行。

//逻辑运算符的优先级
//逻辑运算符<关系运算符<算术运算符

 三、sizeof运算符

注意:sizeof并不是函数 只是运算符(计算出的结果是unsigned long 类型的数值)。

作用:计算出类型所占用的字节数。

//sizeof运算符
int result = sizeof(int);//发生了隐式转换
printf("result = %d",result);//输出4
printf("result = %lu",sizeof(int));//输出4

//自动的类型转换:只有基本数据类型才有,整型、实型、字符型。

//如果传入的是char类型的常量,计算结果也是4字节,传入char类型的变量或者char类型,那么计算结果是1。因为char类型的常量在内存中是当做int类型来存的。

 

至此运算符还有最后一个换位运算符没有介绍,后续有空会补上,有兴趣的也可以自己去学下。

 

 

 

 

推荐阅读