文档章节

第03天C语言(00):笔记总结

lyh2017iOS
 lyh2017iOS
发布于 2017/07/08 10:10
字数 2210
阅读 3
收藏 0
点赞 0
评论 0

#####01-运算符-基本概念

 优先级(1~15 最高1则为() )、结合性(从左至右【x+y-z】、从右至左【number=10】)

#####02-算术运算符

 +、-、*、/、%

 注意 : 1)取模运算只能用于整数、2) 取模运算的正负性 取决于左边的操作数、3)如果取模运算的左边小于右边, 那么结果就是左边

#####03-算术运算符-优先级和结合性

 算术运算符它是左结合性,从左至右计算

 算术运算符中 * / & 优先级大于 + -

#####04-类型转换

 自动类型转换(隐式转化) int number = 10.8; // 输出10

 强制类型转换(显示转换) int number1 = (int)10.8;

 自动类型提升

 算术运算注意点 : 参与运算的操作数是什么类型, 那么计算出来的结果就是什么类型  double result = (double)1 / 2; // 1.0 / 2.0 == 0.5;

#####05-赋值运算符

 最简单的赋值运算,将等号的值赋值给等号左边的变量

 赋值运算符的结核性: 从右至右

 复合运算会先计算等号右边的值,然后再用计算出来的结果 和 等号左边的值进行计算

#####06-自增自减

 自增: 如果想让某一个数加1 可以使用自增

 自减: 如果想让某一个数减1 可以使用自减

 自增自减 写在前面和后面的区别

 如果++ 写在变量的前面, 那么会先将变量自增再用自增之后的结果参与运算

 如果++ 写在变量的后面, 那么会先将变量的值参与运算 再将变量自增

 总结一句话 : ++在前, 先自增再运算, ++在后, 先运算再自增

 常量是不可以自增的

#####07-自增自减-拆分

 int a = 10; int b = a++; (拆分: int b = a;   a = a + 1;) 结果 a = 11 b = 10;

 int a = 10; int b = ++a; (拆分: a = a + 1 , b = a;) 结果 a = 11 b = 11;

#####08-sizeof运算符

 sizeof 可以用来计算一个变量或一个常量、一个数据类型所占的内存字节数

 注意 : sizeof是一个运算符, 不是一个函数

 利用sizeof计算的格式 : sizeof(变量/常量/数据类型);

 如果利用sizeof计算常量/变量, 那么可以省略() -- int number = sizeof 10;

 注意 : 如果利用sizeof计算数据类型, ()不能省略

#####09-逗号运算符

 只要运算符 那么一定会有运算结果, 逗号运算符也不例外.

 逗号运算符的结果是 最后一个表达式的结果  int result = ((a = a + 5), (b = b +1)); // 结果 a = 10 + 5 = 15 , b = 5 + 1 = 6;

#####10-关系运算符

/*

关系运算符:

 >

 <

 >=

 <=

 ==

 !=

 

 关系运算符的返回值只有两种,要么真,要么假,1(真)和0(假)

 int result = a > b; // 吗? 大于, 真,非0即真.

 */

 关系运算符注意点

 关系运算符也有优先级, > < >= <= 优先级大于 == !=   【int result = 1 == 10 > 5 ;】

 算术运算符的优先级  大于 关系运算符                  【int result = 1 + 1 < 2 + 2;】

 关系运算符的结合性 : 从左至右                         【int result = 10 > 3 > 1;】

 如果优先级和结合性同时存在, 先优先级 再 结合性           【int result = 10 + 1 > 5 + 4 == 3 > 1;】 // 【int result = ((10 + 1) > (5 + 4)) == (3 > 1);】

#####11-逻辑运算符

 

/*

 逻辑运算符的返回值 只有两种 : 要么真要么假,要么是1(真),要么是假(0)

 

 && (与运算) 逻辑非结合性 : 从左至右

 格式 : 表达式1 && 表达式2

 只有表达式1 和 表达式都为 真 的时候, 逻辑与表达式才返回真

 如果表达式1 或者 表达式2 中有一个是假, 那么逻辑 与 表达式 返回的结果都是 假

 int result = 10 > 8 && 5 > 3; // 1 && 1 = 1;

 int result = 10 > 8 && 5 > 8; // 1 && 0 = 0;

 口诀 : 一假则假

逻辑与有一个特点 : 一假则假, 所以前面的表达式的值为假, 那么后面的表达式没必要参与运算   【int a = 10; int result = 10 > 18 && a++ > 5;】 0 && 1 = 0 a=10

 判断一个范围 (3<a<5); a= 10; 正确的C语言写法 (a>3) && (a<5);

 

 

 || (或运算) 逻辑非结合性 : 从左至右

 格式 : 表达式1 !! 表达式2

 只要表达式1 或者 表达式2 中有一个是 真的,逻辑或表达式返回的值 就是真

 只要表达式1 和 表达式2的值都是假, 逻辑或的值才是假

 int result = 10 > 8 || 5 > 8;  // 1 || 0 = 1

 口诀 : 一真则真

 【int a = 10;int result = 10 > 18 || ++a > 5;】 0||1 = 1 a= 11

 逻辑与 和 逻辑或 的这个特点,称之为逻辑运算符的短路

 

 

 ! (非运算) 逻辑非结合性 : 从右至左

 如果表达式是真, 就返回假

 如果表达式是假, 就返回真

 【int result = !1;】 0

 取反

 */

 

 

 注意点:由于C语言规定 : 任何数值都有真假性, 非0即真, 所有逻辑运算符 可以直接与 数值进行计算

#####12-三目运算符

 三目运算符格式 : 表达式? 结果A : 结果B

 结合性 : 从左至右

 只要条件表达式 为真 就返回结果A, 如果条件表达式为假, 那么就返回结果B

 【int result = (a > b) ? a : b;】 a 大于 b 吗? 如果 a 大于 b 就返回 a, 否则返回b

 三目运算符的优先级 : 低于关系运算符 和 算术运算符

  

 /*

 1.阅读性比较差

 2.性能也比较差

 int result = (num1 > num2 ? num1 : num2) > num3 ? (num1 > num2 ? num1 : num2) : num3; // 计算了两次 (num1 > num2 ? num1 : num2)

 */

14-if-基本概念

 /*

  第一种格式:

  if(条件表达式)

  {

     语句...

  }

  只要条件表达式 为真, 那么就会执行if后面大括号中的内容

  

  第二种格式:

  if (条件表达式)

  {

     语句...

  }else

  {

     语句...

  }

  只要条件表达式 为真, 那么就会执行if后面大括号中的内容

  如果 条件表达式 不为真, 那么就会执行else后面大括号中的内容

  规律 : 两个大括号中的内容, 一定会有一个会被执行

  

  第三种格式:

  if (条件表达式1)

  {

     语句...

  }

  else if (条件表达式2)

  {

     语句...

  }

  else if (条件表达式3)

  {

     语句...

  }

  ....

  else

  {

      语句...

  }

  只要 条件表达式1 为真, 那么就会执行if后面大括号中的内容,而其他大括号不会被执行

  如果 条件表达式1 不为真,那么就会去判断 条件表达式2 , 如果 条件表达式2 为真就会执行 条件表达式2后面大括号中的内容 其他的else if以此类推.

  当前面所有的if, else if 的条件表达式都不为真, 就会执行else后面大括号中的内容

  规律:

  众多大括号只会执行其中一个

  如果执行到后面大括号中的内容,代表前面的所有条件都不满足

  

  第四种格式:

  if(条件表达式)

     语句...

  如果省略if后面的大括号,当条件表达式为真时, 只会执行if后面的第一条语句

  

  第五种格式 : (if嵌套)

  if(添加表达式)

  {

     if(添加表达式)

     {

  

     }

  }

  else  if(添加表达式)

  {

      if(添加表达式)

      {

      

      }

  }

  

  */

#####15-if-练习1

 1. 从键盘输入一个整数,判断其 是不是偶数, 如果是偶数就输出YES,否则输出NO

 2. 接收用户输入的1~7的整数, 根据用户输入的整数, 输出对应的星期几

 3.接收用户输入的一个整数 month代表月份, 根据月份输出对应的季节

#####16-if-练习2

 4. 键盘输入两个整数, 判断大小后输出较大的那个数

 5. 键盘输入3个整数, 判断大小后输出较大的那个数

 5. 从键盘输入3个整数,排序后输出 (利用num1 和 num2 进行比较, 如果 num1 小于 num2 交换两个变量的值 -- 利用num1 和 num3 进行比较, 如果 num1 小于 num3 交换两个变量的值, 利用num2 和 num3 进行比较, 如果 num2 小于 num3 交换两个变量的值)

#####17-if-注意点

 以后如果要判断其中一个变量 是否等于某一个值, 建议把常量写前面, 变量写后面 【if (18 == age){语句...}】

 if 如果省略大括号, 就会管理离他最近的一条语句, 二; 是一条空语句 【if (0);printf("lyh");】

 如果要在if后面定义变量, 那么必须写上大括号【int number = 19;printf("number = %i\n",number);】

 如果if ,else省略大括号, 那么else会匹配离他最近的if

#####18-石头剪子布

 #include <stdlib.h>

  arc4random_uniform(3); //  arc4random_uniform 方法会根据传入的整数 生成一个随机数

  生成的值 就是 0~[N-1]的值

  0~2

#####快捷键 :

上下移动 : command + option + ]/[

左右移动 : command + ]/[

© 著作权归作者所有

共有 人打赏支持
lyh2017iOS
粉丝 1
博文 354
码字总数 137380
作品 0
朝阳
JavaScript 30天每日效果图

JavaScript 30天每日效果图 在Github上看到了wesbos的一个Javascript30天挑战的repo,旨在使用纯JS来进行练习,不允许使用任何其他的库和框架,该挑战共30天,我会在这里复现这30天遇到的挑战...

黎跃春 ⋅ 2017/07/19 ⋅ 0

5.22-5.30一周总结

过去总结 所学总结 能想起来的部分 周一:雕爷和他吃枣药丸的牛排 周二:柯洁AlphaGo第一盘 周三:会计学pre:现金流量表; 周四:柯洁AlphaGo第二盘;ndarray,plot plt.plot(x,y) 周五:动...

idealclover ⋅ 2017/05/31 ⋅ 0

C语言中常用计时方法总结

转载 http://blog.csdn.net/fzywj/article/details/8109368 C语言中常用计时方法总结 1. time() 头文件:time.h 函数原型:timet time(timet * timer) 功能:返回以格林尼治时间(GMT)为标准...

kcyyc007 ⋅ 2017/12/13 ⋅ 0

日常生活 -- 开博二周年

眼看2017年即将结束,CSDN博客也开通两年了。回顾这两年,感慨颇多。和多数人一样,一开始也是将CSDN作为一个查阅工具,当看到好的博文就会转载。但这就造成一个结果,对于那些转载文章,更多...

qq_29350001 ⋅ 2017/12/03 ⋅ 0

C语言书籍资料汇总

我汇总出自己收藏的C语言方面的书籍资料,方便后期使用,或许你也用的到。 以下内容,有链接的都可以下载。 一、书籍 元老级别的书籍: C程序设计语言.pdf (c语言之父) C Primer plus 第5...

BjarneCpp ⋅ 2017/11/06 ⋅ 0

C语言嵌入式系统编程修炼之屏幕操作

这是我13年前创作和发表在互联网上的文章,这么多年过去了,这篇文章仍然在到处传播。现在贴回Linuxer公众号。 全文目录: C语言嵌入式系统编程修炼之道——背景篇 C语言嵌入式系统编程修炼之...

jus3ve ⋅ 2017/12/30 ⋅ 0

C语言的谜题

我们可以看到很多C语言相关的一些东西。比如《语言的歧义》主要告诉了大家C语言中你意想不到的错误以及一些歧义上的东西。而《谁说C语言很简单》 则通过一些看似你从来不可能写出的代码来告诉...

crazyinsomnia ⋅ 2010/02/22 ⋅ 3

[ios学习]零基础学习iOS开发如何分配时间

在培训期间,学生的时间应该如何分配 学生在学习期间的主要工作时间分配 9:00~ 9:30,认真听同学的学习阶段中的分享,俗话说的好"三人行,必有我师"; 9:30~ 18:00,认真听老师的课堂上课,并且...

浩浩老师 ⋅ 2015/09/15 ⋅ 0

Oracle ORA-14400 分区关键字未映射

工作中,数据库是用的oracle,ora-14400这个报错,之前也出现过,处理好了,但没有写笔记,今天又遇到了,又要去百度。于是决定总结一下,并分享出来。 遇到这个问题,首先通过查询,查看分区...

xiaobo137 ⋅ 2016/08/19 ⋅ 0

C语言嵌入式系统编程修炼

C语言嵌入式系统编程修炼 来源: ChinaUnix博客 C语言嵌入式系统编程修炼之内存操作篇 数据指针 在嵌入式系统的编程中,常常要求在特定的内存单元读写内容,汇编有对应的MOV指令,而除C/C++以...

DB_Terrill ⋅ 2011/04/12 ⋅ 0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

对于程序员的招聘问题,作为软件人的一些吐槽和建议

作为软件人,找工作有时候似乎挺苦逼的。 说真的,让我去掉前面这句中“似乎”二字吧。就是苦逼!很多人都曾抱怨处在招聘的一方很糟糕——我们没有任何可靠的方式来甄别会写代码并且写得好的...

老道士 ⋅ 26分钟前 ⋅ 0

HDFS原理学习

一、概述 1、 Hadoop整合了众多的文件系统,首先提供了一个高层的文件系统抽象org.apache.hadoop.fs.FileSystem。然后有各个文件系统的实现类。 2、Hadoop是JAVA编写的,不同文件系统之间的交...

cjxcloud ⋅ 30分钟前 ⋅ 0

Linux下MySQL表名不区分大小写的设置方法(抄袭别人的)

Linux下MySQL表名不区分大小写的设置方法 MySQL表名不区分大小写的设置方法 在用centox安装mysql后,把项目的数据库移植了过去,发现一些表的数据查不到,排查了一下问题,最后发现是表名的大...

随风而浮沉 ⋅ 35分钟前 ⋅ 0

ubuntu下安装宋体simsun

sudo cp simsun.ttc /usr/share/fonts cd /usr/share/fonts sudo chmod 644 simsun.ttc 更新字体缓存: 代码: sudo mkfontscale 代码: sudo mkfontdir 代码: sudo fc-cache -fsv 安装chrome扩......

wangxuwei ⋅ 37分钟前 ⋅ 0

利用 ssh 传输文件

Linux 下一般可以用 scp 命令通过 ssh 传送文件: #把服务器上的 /home/user/a.txt 发送到本机的 /var/www/local_dir 目录下scp username@servername:/home/user/a.txt /var/www/local_dir...

大灰狼时间 ⋅ 47分钟前 ⋅ 0

web3j教程:android和java程序员如何使用web3j开发区块链以太坊

如何使用web3j为Java应用或Android App增加以太坊区块链支持,本教程内容即涉及以太坊中的核心概念,例如账户管理包括账户的创建、钱包创建、交易转账,交易与状态、智能合约开发与交互、过滤...

智能合约 ⋅ 今天 ⋅ 0

web3j开发java或android以太坊智能合约快速入门

web3j简介 web3j是一个轻量级、高度模块化、响应式、类型安全的Java和Android类库提供丰富API,用于处理以太坊智能合约及与以太坊网络上的客户端(节点)进行集成。 可以通过它进行以太坊区块链...

笔阁 ⋅ 今天 ⋅ 0

一起读书《深入浅出nodejs》-异步I/O

异步I/O “异步”这个名词其实很早就诞生了,但它大规模流行却是在Web 2.0浪潮中,它伴随着AJAX的第一个A(Asynchronous)席卷了Web。 为什么要异步I/O 关于异步I/O为何在Node里如此重要,这与...

小草先森 ⋅ 今天 ⋅ 0

JVM各种问题

1、如果启动什么都不设,会怎样? 先来看一个命令 [root@localhost bin]# java -XX:+PrintCommandLineFlags -version -XX:InitialHeapSize=29899008 -XX:MaxHeapSize=478384128 -XX:+PrintCo......

算法之名 ⋅ 今天 ⋅ 0

SAS笔记-宏2

宏是一种文本,一般来说其编译是在程序执行之前。 宏变量的创建 %let语句 %let macro_variables = text; %let是常见的宏变量建立方式,其编译就在执行前。如下例中,想要宏变量test等于数据集...

tonorth123 ⋅ 今天 ⋅ 0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

返回顶部
顶部