• 自增和自减运算

  1. 自增运算符

    ++
  2. 自增表达式

    1>.前自增表达式.

        int num = 1;

        ++num;



    2>.后自增表达式

        int num = 1;

        num++;



    3>.无论是前自增表达式还是后自增表达式,都是将自身的值加1.
  3. 自增表达式是一个表达式,既然是一个表达式,那么这个表达式就一定有一个结果.

    那么我们就可以用一个变量将这个结果存储起来.



    1>.后自增表达式的结果的计算方式:

        先将自身的值取出来作为后自增表达式的结果.然后再将自身的值+1.

    2>.前自增表达式的结果的计算方式:

        先将自身的值+1,然后再将自身的值取出来,作为表达式的结果.


    a++ ——>  整个a++的式子的值是a ——>  a的值是 a+1

    ++a ——>  整个++a的式子的值是a+1 ——>  a的值是 a+1

    a-- ——>  整个a--的式子的值是a ——>  a的值是 a-1

    --a ——>  整个--a的式子的值是a-1 ——>  a的值是 a-1
  4. 自增运算符的优先级要比算术运算符的优先级高.
  5. 自减如是.
  6. 自增自减是一个单目运算(一个操作数)
 
 
  • 比较运算符与比较表达式

  1. 比较运算符

    > 大于

    < 小于

    >= 大于等于

    <= 小于等于

    == 等于

    != 不等于
  2. 比较表达式

    由比较运算符连接起来的表达式.

    int num1,num2;

    num1 > num2;
  3. 比较表达式的结果的类型



    1>.一个比较表达式代表: 1个条件.

         而一个条件的结果: 成立或者不成立.真的或假的.



    2>.在C语言中使用int数据类型的数据表示真假.

         0  代表假

        非0  代表真



    3>.如果比较表达式所描述的结果成立,结果 = 1

         如果比较表达式所描述的结果不成立,结果 = 0



    注意:判断两个数据是否相等,是两个等号==,1个等号叫赋值
  4. 比较表达式的两边可以使一个变量,也可以是常量,还可以是一个表达式.

    如果比较运算符的一边是表达式,会先计算这个表达式的结果,再与另一边的比较.

    例如:

    int num1 = 100;

    int num2 = 200;



    int res = num1 + num2 > 300;

    先计算num1 + num2 ,再与300比较.
  5. char数据也可以参与比较运算.

    那么比较的是相应的ASCII码.
  • 逻辑运算符与逻辑表达式

  1. 作用:判断多个条件的.使用逻辑运算符来指定多个条件之间的关系.
  2. 逻辑运算符

    && 逻辑与  并且

    ||    逻辑或

    !    非
  3. 逻辑表达式: 由逻辑运算符连接起来的式子

    逻辑表达式的结果:

    0  假

    非0 真
  4. && 逻辑与

    1>.断路问题:

         逻辑表达式,在执行的时候,是先计算左边的条件的结果,再计算右边的条件的结果

         当时&&逻辑运算符的时候,如果左边的条件不成立,那么整个逻辑表达式的结果为不成立.所以右边的条件,系统不会去判断,条件也不会被执行.
  5. || 逻辑或

    当只有一个条件成立时,结果就成立.只有当两边的条件都不成立时,结果才不成立.



    断路问题:逻辑或也存在此问题,当左边的条件为真时,右边的条件不会判断
  6. 优先级:

    逻辑运算符的优先级 比 比较运算符的优先级要低
  7. 逻辑运算符之间的优先级

    !     取反的优先级最高

    &&  其次的是逻辑与

    ||    最后是逻辑或



    优先级 万能公式

    ()  ">" -(负号) ">" ! ">" 算数运算符(+-*/%) ">" 比较运算符(><==...) ">"  && ">" ||
  8. 比较表达式和逻辑表达式.  统称为条件表达式

    条件表达式,描述的是一个或者多个条件.
 
 
  • IF结构

  1. 作用: 可以实现一段代码只有在满足特定条件的时候执行,否则不执行.
  2. 语法: 

    if(条件表达式)

    {

          代码1

    }



    条件表达式: 比较表达式  和  逻辑表达式
  3. 执行步骤:

    先判断条件表达式的真假,如果为真,则执行代码1,否则忽略代码1,往下执行.
 
  • 变量的作用域

  1. 变量的作用域如何寻找:

    向外寻找包裹着这个变量定义的语句的最近一层的大括号
  2. 寻找作用域

    int main( )

    {

        int num = 1;

        {

            int num2 = 2;

            {

                 int num3 = 3;

            }

        }

        return 0;

    }



    以上num,num2,num3的作用域都不一样.
  3. 变量在自己的作用域内可以被访问,不受内层的大括号限制

    int main( )

    {

         int num = 1;

        {

            num = 2;

            {

                printf("%d\n",num);

            }

        }

        return 0;

    }
  4. 外层作用域可以和内层作用域的变量同名,使用遵循就近原则

    int main( )

    {

        int num = 1;

        {

            int num = 2;

            printf("%d\n",num);

        }

        return 0;

    }
  5. 变量出了自己的作用域就会被操作系统从内存中回收,程序员就无权再使用

    int main( )

    {

        {

            int num = 2;

            printf("%d\n",num);

        }

        printf("%d\n",num);

        return 0;

    }
 
 

ios开发之C语言第4天的更多相关文章

  1. ios开发之C语言第一天

    最近在学习ios开发,先学习C语言,再学习OC和swift.正所谓"万丈高楼平地起",打好基础是很重要的,所以C语言也必须好好学习.学习中所使用的操作系统是OS X,开发工具是Xc ...

  2. iOS开发之SQLite-C语言接口规范(一)——Ready And Open Your SQLite

    为什么要搞一搞SQLite的C语言接口规范呢? 因为在做iOS开发中难免会遇到操作数据库的情况,你可以使用第三方的FMDB等,或者使用CoreData.但我们还是有必要去搞清楚如何去使用SQLite的 ...

  3. 李洪强iOS开发之OC语言前期准备

    OC语言前期准备 一.OC简介 Oc语言在c语言的基础上,增加了一层最小的面向对象语法,完全兼容C语言,在OC代码中,可以混用c,甚至是c++代码. 可以使用OC开发mac osx平台和ios平台的应 ...

  4. iOS开发之SQLite--C语言接口规范(五)——iOS开发使用SQLite实例

    本篇博客就使用前面操作SQLite的知识来实现如何去插入,删除和更新数据.然后再把操作SQlite数据库常用的方法进行一个封装.把常用方法进行封装后,把Cars数据库中的其中一个表的数据进行查询,并在 ...

  5. iOS开发之SQLite--C语言接口规范(四) —— Result Values From A Query

    数据库的在上一篇博客中<SQLite之C语言接口规范(三)——Binding Values To Prepared Statements>用到了如何从查询结果中取出结果值.今天的博客就详细 ...

  6. iOS开发之SQLite--C语言接口规范(三)——Binding Values To Prepared Statements

    在前面的博客中已经介绍了如何连接SQLite数据库,并且简单的查询和遍历结果集.在前面用到了sqlite3_stmt *stmt,也就是预编译后的SQL语句.在本篇博客中会了解一下sqlite3_st ...

  7. iOS开发之SQLite-C语言接口规范(二) —— Prepared Your SQL Statements

    在<SQLite的C语言接口规范(一)>中介绍了如何去连接打开数据库,本篇博客就介绍如何操作数据库,本篇主要给出了如何执行数据库查询语句(Select), 然后遍历结果集.本篇博客就直接使 ...

  8. 李洪强iOS开发之OC语言基础知识

    OC语言基础知识 一.面向对象 OC语言是面向对象的,c语言是面向过程的,面向对象和面向过程只是解决问题的两种思考方式,面向过程关注的是解决问题涉及的步骤,面向对象关注的是设计能够实现解决问题所需功能 ...

  9. 李洪强iOS开发之OC语言类的深入和分类

    OC语言类的深入和分类 一.分类 (一)分类的基本知识  概念:Category  分类是OC特有的语言,依赖于类. 分类的作用:在不改变原来的类内容的基础上,为类增加一些方法. 添加一个分类: 文件 ...

  10. 李洪强iOS开发之OC语言构造方法

    OC语言构造方法 一.构造方法 (一)构造方法的调用 完整的创建一个可用的对象:Person *p=[Person new]; New方法的内部会分别调用两个方法来完成2件事情,1)使用alloc方法 ...

随机推荐

  1. 大区间素数筛选 POJ2689

    题意: 给一个区间[L,U],(1<=L< U<=2,147,483,647),U-L<=1000000,求出[L,U]内距离近期和距离最远的素数对. 因为L,U都小于2^32 ...

  2. android111 java中调用c代码

    MainActivity: package com.itheima.helloworld1; import android.os.Bundle; import android.app.Activity ...

  3. 标准I/O库之读和写流

    一旦打开了流,则可在三种不同类型的非格式化I/O中进行选择,对其进行读.写操作: (1)每次一个字符的I/O.一次读或写一个字符,如果流是带缓冲的,则标准I/O会处理所有缓冲. (2)每次一行的I/O ...

  4. 使用AOP 实现Redis缓存注解,支持SPEL

    公司项目对Redis使用比较多,因为之前没有做AOP,所以缓存逻辑和业务逻辑交织在一起,维护比较艰难所以最近实现了针对于Redis的@Cacheable,把缓存的对象依照类别分别存放到redis的Ha ...

  5. ThinkPHP函数详解:L方法

    L方法用于启用多语言的情况下,设置和获取当前的语言定义.调用格式:L('语言变量'[,'语言值'])设置语言变量除了使用语言包定义语言变量之外,我们可以用L方法动态设置语言变量,例如: L('LANG ...

  6. 18、HTML

    HTML 超文本标记语言(Hyper Text Markup Language). 用来描述网页的一种语言. HTML标签 由尖括号包围的关键词. 如:<html> 通常是成对出现的,开始 ...

  7. Mac下sublime text 的“package control”安装

    小伙伴们好,我根据昨晚的经历写一个小总结:关于“Mac下sublime text 的“package control”安装”.本来安装package control是一个无比简单的事情,即使是初次使用 ...

  8. DI(依赖注入)简单理解 NO1

    依赖注入:目的削减程序的耦合度,达到高内聚/低耦合 常用形式:Interface Driven Design接口驱动,接口驱动有很多好处,可以提供不同灵活的子类实现,增加代码稳定和健壮性等等.通过Io ...

  9. .net的 async 和 await

    async 和 await 出现在C# 5.0之后,关系是两兄弟,Task是父辈,Thread是爷爷辈,这就是.net 多线程处理的东西,具体包括 创建线程,线程结果返回,线程中止,线程中的异常处理 ...

  10. JS实现rgb与16进制颜色相互转换

    1.rgb转16进制 function to16 (a) {//RGB(204,204,024) //十六进制颜色值的正则表达式 var reg = /^#([0-9a-fA-f]{3}|[0-9a- ...