C语言中的运算符

C语言中的运算就是对数据进行操作、处理的过程。运算符就是指定该运算的处理方式。

C语言中的运算符:

  • 算术运算符

  • 赋值运算符

  • 关系运算符

  • 逻辑运算符

  • 三目运算符

算数运算符

C语言中的算数运算符包括:

  • 在除法运算中

如果相除的两个数都是整数的话,则结果也为整数,小数部分省略,如8/3 = 2;而两数中有一个为小数,结果则为小数,如:9.0/2 = 4.500000。

  • 在取余运算中

该运算只适合用两个整数进行取余运算,如:10%3 = 1;而10.0%3则是错误的;运算后的符号取决于被模数的符号,如(-10)%3 = -1;而10%(-3) = 1。

注释:C语言中没有乘方这个运算符,也不能用×,÷等算术符号。取余运算和乘法运算和除法运算是同级运算。

#include <stdio.h>
int main()
{
int x,y;
x = 10;
y = -3;
printf("x+y=%d\n",x+y);
printf("x-y=%d\n",x-y);
printf("x*y=%d\n",x*y);
printf("x/y=%d\n",x/y);
printf("x%%y=%d\n",x%y);
return 0;
}
输出结果;
x+y=7
x-y=13
x*y=-30
x/y=-3
x%y=1

注释:%符号在C语言里面有特殊用途,和其它的符号组合表示特定的意义。比如%d表示整数,%c表示字符,而%%表示%本身。

自增和自减运算符

自增运算符为“++”,其功能是使变量的值自增1;自减运算符为“--”,其功能是使变量值自减1。它们经常使用在循环中。自增自减运算符有以下几种形式:



注释:无论是a++还是++a都等同于a=a+1,在表达式执行完毕后a的值都自增了1,无论是a--还是--a都等同于a=a-1,在表达式执行完毕后a的值都自减少1。

实例:

#include <stdio.h>
int main()
{
int a=100;
printf("%d\n", a++);
printf("%d\n", ++a);
printf("%d\n", --a);
printf("%d\n", a--);
printf("%d\n", a+1);
printf("%d\n",a);
}

输出结果:

#include <stdio.h>
int main()
{
int x = 0;
printf("x=%d\n",x++);
printf("x=%d\n",++x);
return 0;
}

输出结果:



注释:x++ 是取值后再运算,所以打印出来的结果是运算前的数值,++x是运算后再取值,所以打印出来的运算后的结果。

赋值运算符

赋值运算符为“=”

#include <stdio.h>
int main()
{
int a,b,c;
a = 10; //给a赋值为10
b = 7; //给b赋值为
c = a+b; //计算a+b的值赋值给c
}

C语言中赋值运算符分为简单赋值运算符和复合赋值运算符,简单赋值运算符为“=”,复合赋值运算符就是在简单赋值符“=”之前加上其它运算符构成,例如+=、-=、*=、/=、%=。

实例:

int a = 3;
a += 5;

分析:定义整型变量a并赋值为3,a += 5;这个算式就等价于a = a+5; 将变量a和5相加之后再赋值给a。

注意:复合运算符中运算符和等号之间是不存在空格的。

关系运算符

下面是C语言中的关系运算符:



关系表达式的值是“真”和“假”,在C程序用整数1和0表示。如:

int a = 10;
int b = 4;
printf("%d\n", a>b); //10>4,为真,输出结果为1
printf("%d\n", a==b); //10==4,为假,输出0// z是否小于等于x

输出结果:



注释:>=,<=,==,!=这种符号之间不能存在空格。

实例:

#include <stdio.h>
int main()
{
int x=5;
int y=5;
int z=10;
printf("x是否大于y:%d\n",x>y); //x是否大于y
printf("y是否大于等于x:%d\n",y>x); //y是否大于等于x
printf("y是否小于z:%d\n",y<z); //y是否小于z
printf("z是否小于等于x:%d\n",z<x); //z是否小于等于x
printf("z是否等于x+y:%d\n",z!=x+y); //z是否等于x+y
return 0;
} 输出结果:
x是否大于y:0
y是否大于等于x:0
y是否小于z:1
z是否小于等于x:0
z是否等于x+y:0

逻辑运算符

C语言中的逻辑运算符:



逻辑运算的值也是有两种分别为“真”和“假”,C语言中用整型的1和0来表示。其求值规则如下:

  1. 与运算(&&)

参与运算的两个变量都为真时,结果才为真,否则为假。例如:5>=5 && 7>5 ,运算结果为真;

  1. 或运算(||)

参与运算的两个变量只要有一个为真,结果就为真。 两个量都为假时,结果为假。例如:5>=5||5>8,运算结果为真;

  1. 非运算(!)

参与运算的变量为真时,结果为假;参与运算量为假时,结果为真。例如:!(5>8),运算结果为真。

实例:

#include <stdio.h>
int main()
{
int height = 175; //身高为175cm
double money = 1500000; //银行存款为150万
printf("是否符合条件:%d\n",height>=180&&money>=1000000); //填写算式
return 0;
} 输出结果:
是否符合条件:0

三目运算符

C语言中的三目运算符:“?:”,其格式为:

表达式1 ? 表达式2 : 表达式3;

执行过程是:

先判断表达式1的值是否为真,如果是真的话执行表达式2;如果是假的话执行表达式3。

实例:

#include <stdio.h>
int main()
{
//定义我们能接受该商品的心里价位
int money = 100;
//定义该商品的单价
int price = 120;
//输出y我们就买,输出n我们就不买
printf("%c\n", price<=money ? 'y' : 'n');
return 0;
}

输出结果:

运算符大比拼之优先级比较

运算符号的顺序:



优先级别为1的优先级最高,优先级别为10的优先级别最低。

实例:

int a = 11;
int b = (a>3)*a-(a+3)%3;
printf("b=%d\n", b);

解析:C语言中运算符中最高等级的为(),因此执行过程为:

1、先计算a>3和a+3的结果,计算后算式为1*a-14%3;

2、再计算1*a和14%3的结果,计算后算式为11-2;

3、最后算出结果为9。

初识C语言(三)的更多相关文章

  1. 初识 go 语言:数据类型

    目录 数据类型 指针 结构体 数组 切片 切片的方法 映射 函数闭包 结束语 前言: go语言的第三篇文章,主要讲述go语言中的数据类型,包括指针,结构体,数组,切片,映射,函数闭包等,每个都提供了示 ...

  2. 初识 go 语言

    目录 go简介 安装 hello world 函数 变量 常量 可见性规则 结束 前言: 最近组内要试水区块链,初步方案定为使用fabirc来弄,而fabric的智能合约就是用go写的,借此机会正好学 ...

  3. 《Go并发编程实战》读书笔记-初识Go语言

    <Go并发编程实战>读书笔记-初识Go语言 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 在讲解怎样用Go语言之前,我们先介绍Go语言的特性,基础概念和标准命令. 一. ...

  4. 01_初识C语言

    第一章 - 初识C语言 基本了解C语言的基础知识,对C语言有一个大概的认识. 每个知识点就是简单认识,不做详细讲解. 1. 什么是C语言? C语言是一门通用计算机编程语言,广泛应用于底层开发.C语言的 ...

  5. 初识 go 语言:方法,接口及并发

    目录 方法,接口及并发 方法 接口 并发 信道 结束语 前言: go语言的第四篇文章,主要讲述go语言中的方法,包括指针,结构体,数组,切片,映射,函数闭包等,每个都提供了示例,可直接运行. 方法,接 ...

  6. 初识 go 语言:语法

    目录 语法 for 循环 if 语句 switch 语句 defer 语句 defer 栈 结束 前言: go语言系列第二篇,主要讲述go语言的语法,如循环,if判断,swich语句,defer语句, ...

  7. 第二百五十八节,Tornado框架-逻辑处理get()方法和post()方法,初识模板语言

    Tornado框架-逻辑处理get()方法和post()方法,初识模板语言 Tornado框架,逻辑处理里的get()方法,和post()方法 get()方法,处理get方式的请求post()方法,处 ...

  8. C语言 三目运算

    C语言 三目运算 功能:为真后可根据条件选择成立两个不同的表达式 如果表达式1值为真选择表达式2 如果表达式1值为假选择表达式3 案例 #define _CRT_SECURE_NO_WARNINGS ...

  9. tn文本分析语言(三):高级语法

    标签(空格分隔): 未分类 高级操作 1.脚本表达式 用双引号包含的脚本被称为脚本表达式,目前支持嵌入Python. 脚本表达式只能在顺序表达式中使用.代码可以在三个位置存在: |位置|功能|例子| ...

随机推荐

  1. vue实现懒加载

  2. CS程序自动更新实现原理及代码(支持多版本多文件更新)

    公司主要项目为CS端,经常遇到客户需求变更及bug处理,在没有引用自动更新之前每次更新程序,必须手动对每个客户端进行更新,这样导致技术支持工作量特别大,也给客户不好的印象,因此我需要一个自动更新程序! ...

  3. Capability配置简介

    什么是Capability desired capability的功能是配置Appium会话.他们告诉Appium服务器您想要自动化的平台和应用程序. Desired Capabilities是一组设 ...

  4. Java PDF转图片

    maven依赖: <dependency> <groupId>org.apache.pdfbox</groupId> <artifactId>pdfbo ...

  5. Mint-UI组件 MessageBox为prompt 添加判断条件

    Mint-UI 的Message Box 是prompt类型时,可以添加正则判断或者function判断条件.具体可以查看Mint-UI源码. 添加正则判断条件: MessageBox({ $type ...

  6. [2019.03.16]使用DOM操作函数和CSS选择器来针对已有的HTML进行只凭JS的改动

    刚入职的时候看到公司用的HTML日志生成工具附带的Panel,工具不够用,找个Fail还要找半天,于是自己琢磨着添砖加瓦.以前也是个半吊子前端工程师,现在可倒好,想要改页面却连页面生成的模板在哪里都不 ...

  7. 在centos安装MySql的三种安装方法

    一.二进制安装MySql 1. 下载Mysql安装包 wget https://downloads.mysql.com/archives/get/file/mysql-5.6.40-linux-gli ...

  8. python中的sequence(序列)

    摘要 这篇文章主要是为了让自己记住字典不是序列,python中序列的类型 序列化的定义 有个朋友问我,什么是序列化,我瞬间懵了,然后查了一下,发现廖雪峰老师给出了一个很舒服的解释: 序列化:我们把变量 ...

  9. LOJ#2087 国王饮水记

    解:这个题一脸不可做... 比1小的怎么办啊,好像没用,扔了吧. 先看部分分,n = 2简单,我会分类讨论!n = 4简单,我会搜索!n = 10,我会剪枝! k = 1怎么办,好像选的那些越大越好啊 ...

  10. freetypeLCD显示

    目录 freetypeLCD显示 安装交叉编译环境 配置 头文件和库的位置 编译安装 复制到PC编译工具链 复制到文件系统 运行测试 LCD显示 编码转换问题 简单显示 角度旋转 换行显示 居中显示 ...