NO.5 C语言——运算符

Posted 手把手编程

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了NO.5 C语言——运算符相关的知识,希望对你有一定的参考价值。

运算符主要分为以下5类:

●算术运算符

●关系运算符

●逻辑运算符

●位逻辑运算符

●逗号运算符



赋值运算符"=":

1、赋值运算符是从右向左结合的,也就是先计算等号右边的式子,然后赋值给左边;

    比如:int i = 1+9;    

    //先计算1+9的值是10,然后把10这个值赋值给int型的变量i


2、只能赋值给变量,不能赋值给表达式。

    比如:int a+b = 1+9;        

    //这种赋值方法是错误的,因为a+b是一个表达式


1

算术运算符


    一、算术运算符包括两个单目运算符(正、负)和5个双目运算符(加+。减-、乘*、除/、取余%)

    我们主要讨论一下取余%:

    取余就是取一个数的余数,比如7%3,它的值就是1,因为7/3=2...1

    再例如7%4,它的值就是3,因为7/4=1...3

我们来看一串代码:

#include <stdio.h>int main(){  int a, b, c;  a = 5;  b = 7;  c = b % a;  printf("c的值是:%d",c); return 0;}

输出结果就是“c的值是:2”


    二、自增(++)与自减(--)运算符

所谓的自增就是自己加上1,自减就是自己减去1

例如:

sum = a++;  //++后缀相当于先把a的值赋值给sum,再进行自加运算sum = ++b;  //++前缀相当于变量b先进行自加运算,再把自加后的值赋值给sumc--;--d;



2

关系运算符


一、关系运算符

    关系运算符包括大于“>”、小于“<”、等于“==”、小于等于“<=”。大于等于“>=”和不等于“!=”


二、关系表达式:

    关系运算符用来比较两个值的大小,如果满足条件,则为真值,否则为假值。

比如:9>5    /*关系成立,结果为真*/

        9==5  /*关系不成立,结果为假*/

我们来看一串代码:

#include <stdio,h>int main(){
int a, b, c; a = 5; b = 10; c = 15;
if(a < b) printf("a的值比b小"); else printf("a的值比b大");
  if((a + b) == c)  printf("a加上b等于c");  else printf("a加上b不等于c");   return 0;}


3

逻辑运算符


逻辑运算符根据表达式的真假返回真值或假值。在C语言中,非零为真值,而假值总是0


一、 三种逻辑运算符

符号
功能
&&
逻辑与
||
逻辑或

单目逻辑非


二、使用方法:

Result = Fun1 && Fun2;    //当Fun1和Fun2都为真的时候,Result的值才为真Result = Fun1 || Fun2;    //当Fun1和Fun2其中一个为真的时候,Result的值为真Result = !Fun2;           //当Fun2为假的时候,Result的值为真,反之,当Fun2的值为真的时候,Result的值为假


三、举例:

     我们可以通过布尔类型判断,也可以通过函数返回值判断

#include <stdio.h>#define F 0#define T 1                //这两个是前面所提到过的常量赋值方法int main(){ int Result;   Result = F && T;   printf("%d\n",Result);    //这里输出的Result的值是假(0)    Result = F || T;   printf("%d\n",Result);    //这里输出的Result的值是真(非零)    Result = !T;   printf("%d\n",Result);    //这里输出的Result的值是假(0) return 0;}



4

位逻辑运算符


位逻辑运算符包括与、或、非和取补。

一、位逻辑运算符                                                          

符号
功能
&
位逻辑与(双目运算符)
|
位逻辑或(双目运算符)

位逻辑非(双目运算符)
~
取补(单目运算符)

我们目前稍作了解(知道)即可,不要在意那些细节哈哈哈


5

逗号运算符


在C语言中,可以用逗号将表达式分割开,整个表达式的值就是最后一个表达式的值。

一、我们简单的介绍                                                                1、先来看第一串代码:

value = 1+2, 3+4, 5+6;

    我们之前说过,逗号表达式的值是最后一个表达式的值,也就是说这个表达式的值是5+6,也就是11,但是这是错误的。

    我们还要关注优先级的问题,因为赋值运算符(=)的优先级比逗号运算符的优先级高,所以赋值运算符优先被执行,也就是先执行value= 1+2这个过程,然后才计算后面的表达式,所以这个表达式的值,也就是value的值是3


2、我们再来看一串代码:

value = (1+2, 3+4, 5+6);

    这个value的值就是11,还是优先级的问题,括号运算符的优先级高于赋值运算符,所以表达式优先计算括号内的逗号表达式,值为11,然后再将值赋值给value,所以value的值是11







手把手教你学编程



以上是关于NO.5 C语言——运算符的主要内容,如果未能解决你的问题,请参考以下文章

C语言代码片段

编译原理 实验一 java语言实现对C语言词法分析

编译原理 实验一 java语言实现对C语言词法分析

20个简洁的 JS 代码片段

20个简洁的 JS 代码片段

按位或运算符 | C中用于对齐内存块的用法[重复]