c语言编程加三运算,C语言编程入门之--第五章C语言基本运算和表达式-part3
5.3 挑几个运算符来讲
常用的运算符除了加减乘除(+-*/)外,还有如下:
注意:以下运算符之间用逗号隔开,C语言中也有逗号运算符,这里不讲逗号运算符。
1. 赋值运算符 =,+=,*=
2. 一元运算符 ++, --
3. 相等运算符 ==,!= ,关系运算符 < ,>,<=,>=
4. 条件运算符 ?:
6. 位运算符 &, ^, | ,! 逻辑运算符 &&, ||, 移位运算符 >>, <<
5.3.1 赋值运算符
给变量赋值,可以通过“=”连接,将右边的数值赋值给左边的变量,如:
int a = ;
int b;
b = ;
赋值运算符中还能够做加减乘除与或非等等的运算,如:
#include
void main()
{
int a = ;
a += ;
printf("a = %d \n", a);
}
运行结果为:a = 110;
上述a += 100 等价于 a = a + 100; 以此类推, a -= 100 等价于 a = a - 100; a *= 100; 等价于 a = a * 100 ......后续讲到的&,^,| 等位运算符也能结合“=”凑合着来使用。
5.3.2 一元运算符,增增,减减
C语言中一元运算符,有加加++和减减--,但是没有乘乘**和除除//。因为++的意思是变量加一,--的意思是变量减1,所以没有必要**和//,因为变量乘以1和除以1都是等于变量本身。
因为++和--的意思类似,所以就挑++来讲解。
++可以放在变量前面,也可以放在变量后面,意思不同,写法如下:
int a = ;
++a;
a++;
++a是先进行自增1的运算,然后进行其它的操作,a++是先进行其它操作,然后再进行自增1的运算,这么说不好理解,如下代码:
#include
void main()
{
int a = ;
int b = ;
a = ++b;
printf("a = %d b = %d\n", a, b);
}
运行结果是:a = 11 b = 11; 代码中,a在变量声明的时候赋值为0,b赋值为10,在运算表达式中,a = ++b; 先进行b的自增运算,这时候b就变为了10+1 = 11,然后赋值给a,a的取值就变为11了,再看下一段代码:
#include
void main()
{
int a = ;
int b = ;
a = b++;
printf("a = %d b = %d\n", a, b);
}
运行的结果是:a = 10 b = 11;代码中,a在变量声明的时候赋值为0,b赋值为10,在运算表达式中,a = b++;先进行a = b 的赋值运算,然后再进行b = b + 1 的自增运算,所以a的取值就是10,b的取值为11。
如果++b和b++是完整的一句表达式,
注意:完整的一句表达式以分号;作为为这句结束的标识。
也就是,
#include
void main()
{
int a = ;
++a;
printf("a = %d\n", a);
}
和
#include
void main()
{
int a = ;
a++;
printf("a = %d\n", a);
}
它们的运行结果是一致的,因为完整的一句表达式中,没有其它的操作,所以就只做了自增1的操作。所以请记住:++a是先进行自增1的运算,然后进行其它的操作,a++是先进行其它操作,然后再进行自增1的运算
熟悉了以上概念就可以思考以下结果:
int a, b, c, d,e, f, g, h;
a = ;
b = (a++) + (a++) + (a++);
a = 10;
c = (++a)+ (++a) + (++a);
a = 10;
d = (++a) + (a++) + (a++);
a = 10;
e = (a--) + (a--) + (a--);
a = 10;
f = (--a)+ (--a) + (--a);
a = 10;
g = (--a) + (a--) + (a--);
a = 10;
h = (a--) - (a++) + (++a) - (--a);
请问b,c,d,e,f,g,h的取值为多少?不理解的话可以再次回顾刚才的概念,然后加printf语句来核对结果。
5.3.3 和bool值有关的相等运算符与关系运算符
第四章的时候有讲过一种数据类型叫做 bool,它的取值就两种,true,false。计算机语言是二进制,内存中,true等于1,false等于0,如以下代码,
#include
#include
void main()
{
printf("%d , %d \n", true, false);
}
运行结果为 1 , 0;所以更加清晰的了解了,真true的值为1,假false的值为0。
注意:需要声明头文件 stdbool.h 才可以使用 bool 变量,才可以打印 true 和 false 的值。
有了以上概念,就可以理解相等运算符的取值了,比如两个等于号 == ,意思为这两个取值是否相等,是的话运算结果值为1,不是的话运算结果值为0。
注意:千万不要把赋值运算符 = 与相等运算符 == 混淆了!后续讲解条件语句会再提到这点。
感叹号加上等号 != ,意思为这两个值是否不相等,是的话运算结果值为1,不是的话运算结果值为0。代码如下:
#include
#include
void main()
{
int a = ;
int b = ;
bool c;
c = (a == b);
printf("c = %d \n", c);
}
运行结果为,c = 0;所以c的值就说明了 a == b 是假,也就是 a 和 b 相等是不成立的。
注意:读者可以自行改代码,把 b = 5 改为 b = 10 ,就能发现,c的值变为1了,说明这时 a 等于 b 成立。
把代码稍微修改一下,把 a == b 改为, a != b 如下:
#include
#include
void main()
{
int a = ;
int b = ;
bool c;
c = (a != b);
printf("c = %d \n", c);
}
运行结果为,c = 1;说明 a 不等于 b 是成立的,所以运算结果值取1。
同理,小于号 < 取运算结果,左边是否小于右边,是的话运算结果值取1,否的话运算结果值取0;
小于等于号 <= ,大于号 > ,大于等于号 >= 也都是这样的用法。
5.3.4 条件运算符
问号加上冒号就组成了条件运算符的表示 ?: ,使用方式一般套用以下格式:
条件 ? 表达式1 : 表达式2
条件其实也是一种表达式,只不过条件的取值是 bool 值,如果取值是true(1),运算表达式1,如果取值是false (0),运算表达式2,代码如下,
#include
#include
void main()
{
int a = ;
int b = ;
(a > b) ? (++a) : (++b);
printf("a = %d, b = %d\n", a, b);
}
运行结果为:a = 11, b = 5; 在表达式 (a > b) ? (++a) : (++b); 中, 先判断 a 是否大于 b,结果是大于,所以选择问号后面的表达式 ++a 来运算。
后续讲到宏定义的时候会再次涉及条件运算符做个小功能,这里mark一下。
C语言编程入门之--第五章C语言基本运算和表达式-part1
导读:程序要完成高级功能,首先要能够做到基本的加减乘除.本章从程序中变量的概念开始,结合之前学的输出函数和新介绍的输入函数制作简单人机交互程序,然后讲解最基础的加减法运算,自制简单计算器程序练手. 5 ...
C语言编程入门之--第五章C语言基本运算和表达式-part2
5.1.4 再来一个C库函数getchar吸收回车键 回车键也是一个字符,在使用scanf的时候,输入完毕要按下回车键,这时候回车键也会被输入到stdin流中,会搞乱我们的程序. 注意:stdin是输 ...
C语言编程入门之--第五章C语言基本运算和表达式-part4
5.3.5 和二进制极为密切的运算符 本小节的运算符需要借助二进制概念来理解. 二进制数据中,比如一个字节的数据,它的十进制为228,二进制就为11100100,如图5.11, 注意:如果不懂怎么转换 ...
C语言编程入门之--第四章C语言基本数据类型
导读:C语言程序中经常涉及一些数学计算,所以要熟悉其基本的数据类型.数据类型学习起来比较枯燥,不过结合之前的内存概念,以及本节的字节概念,相信数据类型也就不难理解了.本章从二进制的基本概念开始,然 ...
C语言编程入门之--第六章C语言控制语句
导读:本章带读者理解什么是控制语句,然后逐个讲解C语言常用的控制语句,含有控制语句的代码量多起来后就要注意写代码的风格了,本章末节都是练习题,大量的练习才能掌握好控制语句的使用. 6.1 什么是控制语 ...
C语言编程入门之--第三章编写第一个C语言程序
第三章 编写第一个C语言程序 导读:一般学一门计算机语言的第一堂上机课(“上机”顾名思义,上了计算机),就是往屏幕输出“hello world”,本章也不例外. 1.1 Hello,World! 这一 ...
C语言编程入门之--第一章初识程序
第一章 初识程序 导读:计算机程序无时不刻的影响着人类的生活,现代社会已经离不开程序,程序的作用如此巨大,那么程序到底是什么呢?本章主要讨论程序的概念,唤起读者对程序的兴趣,同时对C语言程序与其它语言 ...
linux 操作系统下c语言编程入门
2)Linux程序设计入门--进程介绍 3)Linux程序设计入门--文件操作 4)Linux程序设计入门--时间概念 5)Linux程序设计入门--信号处理 6)Linux程序设计入门--消息管理 ...
VS2010/MFC编程入门之四十五(MFC常用类:CFile文件操作类)
上一节中鸡啄米讲了定时器Timer的用法,本节介绍下文件操作类CFile类的使用. CFile类概述 如果你学过C语言,应该知道文件操作使用的是文件指针,通过文件指针实现对它指向的文件的各种操作.这些 ...
随机推荐
POJ3468 A Simple Problem with Integers(线段树延时标记)
题目地址http://poj.org/problem?id=3468 题目大意很简单,有两个操作,一个 Q a, b 查询区间[a, b]的和 C a, b, c让区间[a, b] 的每一个数+c 第 ...
如何在Azure Websites中配置PHP从而改变系统默认时区
Shirley_Wang Tue, Mar 3 2015 7:29 AM Azure Website为我们提供了可高度扩展的网站部署平台.由于Website是PaaS(平台即服务)层的服务,当用户把 ...
hdu1043Eight (经典的八数码)(康托展开+BFS)
建议先学会用康托展开:http://blog.csdn.net/u010372095/article/details/9904497 Problem Description The 15-puzzle ...
SASS相关
1.安装ruby http://rubyinstaller.org/downloads/ 2.安装SASS gem sources --remove https://rubygems.org/ gem ...
NPOI:创建Workbook和Sheet
NPOI官方网站:http://npoi.codeplex.com/ 创建Workbook说白了就是创建一个Excel文件,当然在NPOI中更准确的表示是在内存中创建一个Workbook对象流.在看了 ...
js分享功能
引用JiaThis的分享功能: 直接在想要放置分享功能的地方加上如下代码即可:
关于python中的GIL
什么是GIL锁? GIL是Global Interpreter Lock的缩写,GIL中文可以称为全局解释器锁.提及到GIL,我们要知道它是在实现Python解析器(CPython)时所引入的一个概念 ...
ExtJs 编译
前台使用Extjs加载源码的话是非常庞大的,编译之后就只加载一个app.js文件.这种技能如果不知道的话怕别人骂我不是个女程序员.哈哈哈哈哈. 打开cmd,进入程序Extjs的文件夹,如我的程序Ext ...
git merge branch
git branch look at your branches git branch newbranch git checkout newbrach do something git check ...
c语言编程加三运算,C语言编程入门之--第五章C语言基本运算和表达式-part3相关推荐
- C语言编程计算y,C语言编程入门之--第五章C语言基本运算和表达式-part4
5.3.5 和二进制极为密切的运算符 本小节的运算符需要借助二进制概念来理解. 二进制数据中,比如一个字节的数据,它的十进制为228,二进制就为11100100,如图5.11, 注意:如果不懂怎么转换 ...
- R语言学习笔记——入门篇:第一章-R语言介绍
R语言 R语言学习笔记--入门篇:第一章-R语言介绍 文章目录 R语言 一.R语言简介 1.1.R语言的应用方向 1.2.R语言的特点 二.R软件的安装 2.1.Windows/Mac 2.2.Lin ...
- java范式_【java编程】三种非主流的编程范式?
原标题:[java编程]三种非主流的编程范式? [Java培训]:的小编在一些平台上看到的高端的编程技巧,今天给大家介绍相应的三种编程范式,在编程中就提到了提到了不少小众语言,在这里小编希望借此让大家 ...
- java语言程序设计基础篇课后答案_《Java语言程序设计:基础篇》课后复习题答案-第十五章.pdf...
<Java语言程序设计:基础篇>课后复习题答案-第十五章 Chapter15Graphics 1. Theycoordinateshouldincreaseandthexcoordinat ...
- 导航编程用c语言还是c加加,C语言/C加加大神程序员老司机带你玩转C语言指针详解...
很多初学编程的小伙伴都会选择C语言作为第一门学习的编程语言,因为C语言作为一门底层基础语言相对于其他的高层语言来说更加容易学习.可以来帮助正在学习编程的小伙伴更加快速的了解计算机原理. 但是初学C语言 ...
- 北邮计院数电第五章——VHDL语言
PLD:用户根据需要自行设计芯片中特定逻辑电路的器件 可编程逻辑:包括硬件.软件 本章思路: PLD->FPGA.ISP->编程方法.工具 PLD的基本概念 可编程阵列 所有的PLD都是用 ...
- 《C语言程序设计与实践(第2版)》——第1章 C语言与程序设计概述 1.1初见C语言程序...
本节书摘来自华章出版社<C语言程序设计与实践(第2版)>一书中的第1章,第1.1节,作者:凌云等著,更多章节内容可以访问云栖社区"华章计算机"公众号查看 第1章 C语言 ...
- java语言定义一个具备栈功能的类_Java学习笔记 第二章 Java语言基础
第二章 JAVA语言基础 一.关键字 1.关键字的定义和特点 定义:被Java语言赋予了特殊含义的单词 特点:关键字中所有的字母都为小写 2.用于定义数据类型的关键字 c;ass interface ...
- SysML实践指南第二版(中文翻译:刘亚龙)第五章-SysML语言框架
SysML语言框架 本章开始介绍SysML语言的详细描述,包含第二部分的剩余章节,包含SysML语言框架的一个讨论并提供一个通用概念的介绍,应用到所有SysML图.也包含一个例子的介绍使用贯穿在第二部 ...
- python语言中、用来表示赋值的符号是_第二章Python语言基础知识
第二章Python语言基础知识 2.1 Python语言基础知识 2.1.1标识符与关键字 在Python语言中,对程序中各个元素命名加以区分,这种用来标识变量.函数.类等元素的符号称为标识符. Py ...
最新文章
- 小组级git服务器搭建
- vijos1055 奶牛浴场
- intranet的计算机环境包括,计算机四级考试网络工程师考点:企业网与Intranet
- 使用docker在CentOS7上搭建WordPress
- python爬虫反爬对抗_python爬虫反反爬,你几乎可以横扫大部分 css 字体加密的网站...
- ctf 改变图片高度_每天一分钟,python一点通(opencv的图片处理方法)
- wps合并所有sheet页_表格高级筛选、表格合并,让表格处理事半功倍
- 20180321选择排序-简单选择排序
- 小米四曲面瀑布屏概念手机亮相:按键、开孔、边框全部消失
- webpack-loader(加载器)
- TeeChart.Pro.v7.06在BDS2006中的安装(For Win32)
- [转]C#正则表达式小结
- 架构之美读书笔记之三
- catia二次开发:结构树文档,录制宏编程思路,遍历结构树,catia根对象窗体属性,打开导出文件,cameras工具条,viewer对象和截图,catia发送命令
- 使用爱思助手备份苹果手机数据的方法
- RadioButton下划线效果的使用
- Qt在mac上的字体
- Java设计模式第一章(软件设计原则)(学习笔记)
- 莱赞多店管家分析Lazada印尼站点热卖商品,商家运营更轻松
- 本周ACM总结以及最近ACM心得小结
热门文章
- 【优化分类】基于matlab粒子群算法优化支持向量机分类(多输入多分类)【含Matlab源码 1559期】
- 【TWVRP】基于matlab遗传算法求解送货且带时间窗的车辆路径规划问题【含Matlab源码 1074期】
- 【图像去噪】基于matlab中值+均值+高斯+Laplacian+Sobel+Prewitt图像去噪【含Matlab源码 025期】
- AMOS结构方程模型(SEM)简介【SPSS 049期】
- 自学人工智能途径_成为数据科学家,AI或ML工程师的自学途径
- ai人工智能_毕竟人工智能可能不适合您
- ai人工智能操控什么意思_为什么要建立AI分散式自治组织(AI DAO)
- 香草 jboss 工具_使用Tensorflow创建香草神经网络
- 线性代数 前五章知识点梳理总结
- go语言 读文件最后一行_Go 语言核心文件调试