初识C语言(三)
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来表示。其求值规则如下:
- 与运算(&&)
参与运算的两个变量都为真时,结果才为真,否则为假。例如:5>=5 && 7>5 ,运算结果为真;
- 或运算(||)
参与运算的两个变量只要有一个为真,结果就为真。 两个量都为假时,结果为假。例如:5>=5||5>8,运算结果为真;
- 非运算(!)
参与运算的变量为真时,结果为假;参与运算量为假时,结果为真。例如:!(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语言(三)的更多相关文章
- 初识 go 语言:数据类型
目录 数据类型 指针 结构体 数组 切片 切片的方法 映射 函数闭包 结束语 前言: go语言的第三篇文章,主要讲述go语言中的数据类型,包括指针,结构体,数组,切片,映射,函数闭包等,每个都提供了示 ...
- 初识 go 语言
目录 go简介 安装 hello world 函数 变量 常量 可见性规则 结束 前言: 最近组内要试水区块链,初步方案定为使用fabirc来弄,而fabric的智能合约就是用go写的,借此机会正好学 ...
- 《Go并发编程实战》读书笔记-初识Go语言
<Go并发编程实战>读书笔记-初识Go语言 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 在讲解怎样用Go语言之前,我们先介绍Go语言的特性,基础概念和标准命令. 一. ...
- 01_初识C语言
第一章 - 初识C语言 基本了解C语言的基础知识,对C语言有一个大概的认识. 每个知识点就是简单认识,不做详细讲解. 1. 什么是C语言? C语言是一门通用计算机编程语言,广泛应用于底层开发.C语言的 ...
- 初识 go 语言:方法,接口及并发
目录 方法,接口及并发 方法 接口 并发 信道 结束语 前言: go语言的第四篇文章,主要讲述go语言中的方法,包括指针,结构体,数组,切片,映射,函数闭包等,每个都提供了示例,可直接运行. 方法,接 ...
- 初识 go 语言:语法
目录 语法 for 循环 if 语句 switch 语句 defer 语句 defer 栈 结束 前言: go语言系列第二篇,主要讲述go语言的语法,如循环,if判断,swich语句,defer语句, ...
- 第二百五十八节,Tornado框架-逻辑处理get()方法和post()方法,初识模板语言
Tornado框架-逻辑处理get()方法和post()方法,初识模板语言 Tornado框架,逻辑处理里的get()方法,和post()方法 get()方法,处理get方式的请求post()方法,处 ...
- C语言 三目运算
C语言 三目运算 功能:为真后可根据条件选择成立两个不同的表达式 如果表达式1值为真选择表达式2 如果表达式1值为假选择表达式3 案例 #define _CRT_SECURE_NO_WARNINGS ...
- tn文本分析语言(三):高级语法
标签(空格分隔): 未分类 高级操作 1.脚本表达式 用双引号包含的脚本被称为脚本表达式,目前支持嵌入Python. 脚本表达式只能在顺序表达式中使用.代码可以在三个位置存在: |位置|功能|例子| ...
随机推荐
- 一次jdk1.7升级jdk1.8后导致redis运行时blocked_clients过多问题解决
公司有个采集项目,因为请求量较大,添加了redis集群,并且升级了原有的jdk1.7到jdk1.8版本,之后问题就出来了. 1.程序运行一段时间就自动停止,必须重启才能再次运行. 2.redis连接监 ...
- 基于Vue cli生成的Vue项目的webpack4升级
前面的话 本文将详细介绍从webpack3到webpack4的升级过程 概述 相比于webpack3,webpack4可以零配置运行,打包速度比之前提高了90%,可以直接到ES6的代码进行无用代码剔除 ...
- IntelliJ IDEA远程调试(Debug)Tomcat
为什么需要这么做? 解决 在我本地是好的啊 这个世界性难题- 测试环境碰到问题,直接连上debug,不用再测试本地,再查看测试环境日志 遇到一些诡异的问题,日志是看不出端倪的 调试一些只能在测试环境执 ...
- DP的优化总结
一.预备知识 \(tD/eD\) 问题:状态 t 维,决策 e 维.时间复杂度\(O(n^{e+t})\). 四边形不等式: 称代价函数 w 满足凸四边形不等式,当:\(w(a,c)+w(b,d)\l ...
- [BJOI2019]勘破神机(斯特林数,数论)
[BJOI2019]勘破神机(斯特林数,数论) 题面 洛谷 题解 先考虑\(m=2\)的情况. 显然方案数就是\(f_i=f_{i-1}+f_{i-2}\),即斐波那契数,虽然这里求出来是斐波那契的第 ...
- Linux-系统调用理解
系统调用即为Linux内核中设置的一组用于实现各种系统功能的子程序,操作系统通过系统调用为运行在其上的进程提供服务. 由于进程一般不能访问内核所占内存空间以及调用内核函数,为了与用户态进程进行交互,内 ...
- wordpress文章链接怎么把默认的别名改成id形式和伪静态设置
别名默认是文章标题,打不开,改成英文形式可以打开,但这样很不方便,还有可能重复.怎么改成按文章id自动生成相应链接呢 找到设置---固定链接----把默认的日期和名称型改成自定义结构把末尾的%post ...
- 微信, qq 支付宝 等相关开发 资源 记录
手机QQweb开发平台 api : http://open.mobile.qq.com/api/component/share qq 微信 分享 简介 :https://segmentfault. ...
- 关于rocketmq的配置启动
#集群名称brokerClusterName=rocket-nameserver#broker-a,注意其它两个分别为broker-b和broker-cbrokerName=broker-a#brok ...
- GIT-Linux(CentOS7)系统部署git服务器
GIT-Linux(CentOS7)系统部署git服务器 root账号登录 一. 安装并配置必要的依赖关系在CentOS系统上安装所需的依赖:ssh,防火墙,postfix(用于邮件通知) ,wget ...