一、数值类型

  1、实数常量的表示:3.5(双精度),3.5f(单精度),3.5L(长双精度)

  2、整数常量:char字符常量(‘a’,‘b’,‘0’)当做一个整型常量参加运算

  3、数字字符与英文字母字符的编号(Ascll码)都是顺序连接的

二、控制语句

  1、while和do while的区别:当while条件不成立时,while()循环不执行循环语句,而do while会循环执行一次循环语句再判断

  2、流程控制语句:continue(中断本次循环)    break(跳出整个循环)

  3、开关语句switch

    switch用法

      switch(整数表达式){

        case整型常量表达式1:语句序列1;

        case整型常量表达式2:语句序列2;

      }

  注:

    1、switch的判断类型都是整数

    2、case后面只能跟整型常数表达式

    3、switch只能针对整型运算,且运算结果是某些固定的整型常量才可以

    4、default(默认)选项不论位置在哪儿,总是在前面,css不成立时,最后判断

    5、并不是所有的条件判断都合适switch

三、C程序结构与变量

  1、全局变量

    在所有函数外声明的变量称为全局变量。

    作用域:(范围)从声明的语句向后一直到文件结束

    生存期:从声明的语句开始及存在,直到程序运行结束

    注:全局变量可以再次调用,使用的是初始值

  2、局部变量(自动变量)auto int x;

    在函数体内(包括形式参数)声明的参数称为局部变量

    作用域:只在所在的函数体内起作用

    生存期:当函数运行时,开始存在,当函数结束时,局部变量释放(消失)

  注:局部变量能在局部变量所在范围内跟全局变量重名

   3、静态局部变量  static int y;

    在函数体内(包括形式参数)声明的参数称为局部变量

    作用域:只在所在的函数体内起作用

    生存期:程序运行时,就存在,一直到程序结束才释放所占用内存

  4、常变量---常熟变量

    是一个变量,可在赋初值是定义它的值,但在运行过程中,不能在改变它的值

四、预处理:在编译之前做的事叫做预处理

  1、文件包含    #include <stdio.h>  #include <math.h>

  2、宏定义和宏替换(发生在预处理)

    #define(定义) SLD (起的名)  static long double(替换内容)

   SLD x=2.4,y=3.5;

  带参数的宏替换

    #define min(A,B)  ((A)<(B)?(A):(B))

    Z=min(x+y,x*y);    ((x+y)<(x*y)?(x+y):(x*y))

五、常用的定义常量方法

  1、const 常变量定义

  2、用宏替换实现定义常变量

  3、使用enum实现(枚举类型)const int OUT=10;conts int IN=3;

    enum{OUT=10,IN=3};

六、字位运算符

  逻辑运算符!(取反)&&(并且)||(或者)

  位运算符的运算规则

    x  y  !x(取反)  x&y(并且)  x|y(或者)  x^y(异或)

    1  1  0        1        1      0

    1  0  0        0        1      1

    0  1  1        0        1      1

    0  0  1        0        0      0

第五章 C程序结构的更多相关文章

  1. Gradle 1.12用户指南翻译——第四十五章. 应用程序插件

    本文由CSDN博客貌似掉线翻译,其他章节的翻译请参见: http://blog.csdn.net/column/details/gradle-translation.html 翻译项目请关注Githu ...

  2. 《算法》第五章部分程序 part 3

    ▶ 书中第五章部分程序,包括在加上自己补充的代码,字符串高位优先排序(美国国旗排序) ● 美国国旗排序 package package01; import edu.princeton.cs.algs4 ...

  3. 《算法》第五章部分程序 part 8

    ▶ 书中第五章部分程序,包括在加上自己补充的代码,适用于基因序列的 2-Bit 压缩算法,行程长压缩算法,Huffman 压缩算法,LZW 压缩算法 ● 适用于基因序列的 2-Bit 压缩算法 pac ...

  4. 《算法》第五章部分程序 part 7

    ▶ 书中第五章部分程序,包括在加上自己补充的代码,字符串的二进制表示.十六进制表示.图形表示 ● 二进制表示 package package01; import edu.princeton.cs.al ...

  5. 《算法》第五章部分程序 part 6

    ▶ 书中第五章部分程序,包括在加上自己补充的代码,非确定性有穷自动机(NFA),grep 命令(利用 NFA 匹配) ● 非确定性有穷自动机(NFA) package package01; impor ...

  6. 《算法》第五章部分程序 part 5

    ▶ 书中第五章部分程序,包括在加上自己补充的代码,Knuth-Morris-Pratt 无回溯匹配,Boyer - Moore 无回溯匹配,Rabin - Karp 指纹匹配 ● Knuth-Morr ...

  7. 《算法》第五章部分程序 part 4

    ▶ 书中第五章部分程序,包括在加上自己补充的代码,Trie 树类,Trie 集合,三值搜索树(Ternary Search Trie) ● Trie 树类 package package01; imp ...

  8. 《算法》第五章部分程序 part 2

    ▶ 书中第五章部分程序,包括在加上自己补充的代码,字符串高位优先排序(计数 + 插排),(原地排序),(三路快排,与前面的三路归并排序相同) ● 计数 + 插排 package package01; ...

  9. 《算法》第五章部分程序 part 1

    ▶ 书中第五章部分程序,包括在加上自己补充的代码,字母表类,字符串低位优先排序(桶排) ● 字母表类 package package01; import edu.princeton.cs.algs4. ...

随机推荐

  1. CPU纯软件全虚拟化技术

    我们在前面的文章中提到了虚拟化技术的大致分类情况,即分为全虚拟化.半虚拟化和硬件辅助虚拟化3大类.而我们虚拟化技术最主要的虚拟主体就是我们的硬件CPU.内存和IO,那么我们的CPU在全虚拟化模式下如何 ...

  2. angular based app开发流程

    整理user story mock UI,生成满足上述user story的原型界面 根据上述UI,整理出data model(适用于后端和angular的数据模型) 后端CRUD开发,形成REST ...

  3. 设计模式(16) 观察者模式(OBSERVER)C++实现

    意图: 定义对象间的一种一对多的依赖关系,当一个对象的状态发生改变时,所有依赖于它的对象都得到通知并被自动更新. 动机: 将一个系统设计成一系列相互协作的类有一个常见的副作用:需要维护相关对象之间的一 ...

  4. Django路由系统---django重点之url映射分发

    django重点之url映射分发 在全局项目的urls.py中进行子项目的映射,然后在子项目中创建一个urls.py去处理自己项目中的请求,同时也实现了代码的解耦 添加路由分发的原则[全局urls.p ...

  5. Linux中脚本的使用方法

    Linux中脚本的使用方法 一.前言 关于Linux中的脚本的用法,一直没有时间去好好地总结,正好今天下雨,就好好的整理一下思路吧,其实精通了一门语言,比如C语言,学习其他语言需要的成本是非常少的,同 ...

  6. December 12th 2016 Week 51st Monday

    Nothing is impossible for a willing heart. 心之所愿,无所不成. I wish I can be a strong, clever, powerful and ...

  7. December 10th 2016 Week 50th Saturday

    Storms make trees take deeper roots. 风暴使树木深深扎根. Sometimes, you may feel frustrated for failing to wi ...

  8. [BZOJ 1647][USACO 2007 Open] Fliptile 翻格子游戏

    1647: [Usaco2007 Open]Fliptile 翻格子游戏 Time Limit: 5 Sec  Memory Limit: 64 MBSubmit: 702  Solved: 281[ ...

  9. 理解单链表的反转(java实现)

    要求很简单,输入一个链表,反转链表后,输出新链表的表头.   反转链表是有2种方法(递归法,遍历法)实现的,面试官最爱考察的算法无非是斐波那契数列和单链表反转,递归方法实现链表反转比较优雅,但是对于不 ...

  10. java @XmlTransient与@Transient区别

    1.@XmlTransient a.@XmlTransient 注解解决 JavaBean 属性名称与字段名称之间的名称冲突,或者用于防止字段/属性的映射 b.阻止将 JavaBean 属性映射到 X ...