第五章 C程序结构
一、数值类型
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程序结构的更多相关文章
- Gradle 1.12用户指南翻译——第四十五章. 应用程序插件
本文由CSDN博客貌似掉线翻译,其他章节的翻译请参见: http://blog.csdn.net/column/details/gradle-translation.html 翻译项目请关注Githu ...
- 《算法》第五章部分程序 part 3
▶ 书中第五章部分程序,包括在加上自己补充的代码,字符串高位优先排序(美国国旗排序) ● 美国国旗排序 package package01; import edu.princeton.cs.algs4 ...
- 《算法》第五章部分程序 part 8
▶ 书中第五章部分程序,包括在加上自己补充的代码,适用于基因序列的 2-Bit 压缩算法,行程长压缩算法,Huffman 压缩算法,LZW 压缩算法 ● 适用于基因序列的 2-Bit 压缩算法 pac ...
- 《算法》第五章部分程序 part 7
▶ 书中第五章部分程序,包括在加上自己补充的代码,字符串的二进制表示.十六进制表示.图形表示 ● 二进制表示 package package01; import edu.princeton.cs.al ...
- 《算法》第五章部分程序 part 6
▶ 书中第五章部分程序,包括在加上自己补充的代码,非确定性有穷自动机(NFA),grep 命令(利用 NFA 匹配) ● 非确定性有穷自动机(NFA) package package01; impor ...
- 《算法》第五章部分程序 part 5
▶ 书中第五章部分程序,包括在加上自己补充的代码,Knuth-Morris-Pratt 无回溯匹配,Boyer - Moore 无回溯匹配,Rabin - Karp 指纹匹配 ● Knuth-Morr ...
- 《算法》第五章部分程序 part 4
▶ 书中第五章部分程序,包括在加上自己补充的代码,Trie 树类,Trie 集合,三值搜索树(Ternary Search Trie) ● Trie 树类 package package01; imp ...
- 《算法》第五章部分程序 part 2
▶ 书中第五章部分程序,包括在加上自己补充的代码,字符串高位优先排序(计数 + 插排),(原地排序),(三路快排,与前面的三路归并排序相同) ● 计数 + 插排 package package01; ...
- 《算法》第五章部分程序 part 1
▶ 书中第五章部分程序,包括在加上自己补充的代码,字母表类,字符串低位优先排序(桶排) ● 字母表类 package package01; import edu.princeton.cs.algs4. ...
随机推荐
- 路飞学城知识点4之Django contenttypes 应用
Django contenttypes 应用 contenttypes 是Django内置的一个应用,可以追踪项目中所有app和model的对应关系,并记录在ContentType表中. 每当我们创建 ...
- 用webpack实现前端自动化构建
什么是自动化的前端构建流? 1. 自动补全css私有前缀,自动转化less\sass为css,自动转化es6\vue\jsx语法为js,自动打包小图片为base64以减少http请求,自动给js,cs ...
- centos 7.2 Apache+mysql+php step by step备忘
1. 如何允许laravel程序执行sudo shell脚本? chmod u+w /etc/sudoers ; echo "apache ALL=(ALL) NOPASSWD:ALL&qu ...
- laravel middleware
当你使用larvel创建一个相对比较复杂的web网站时,往往你的routes文件就会变得很庞大.一般来说在开始网站编码之前,最好做一个整体规划,把这些route逻辑上划分为不同的group,每一个gr ...
- FTP上传和WEB上传的区别
说区别之前,咱先说说什么是上传?上传就是将信息从个人计算机(本地计算机)传递到中央计算机(远程计算机)系统上,让网络上的人都能看到.将制作好的网页.文字.图片等发布到互联网上去,以便让其他人浏览 ...
- matplotlib点线 坐标刻度 3D图绘制(六)
plot语句中支持除X,Y以外的参数,以字符串形式存在,来控制颜色.线型.点型等要素,语法形式为: plt.plot(X, Y, 'format', ...) 1 点和线的样式 颜色 参数color或 ...
- Intel酷睿前世今生(一)
Intel酷睿系列自诞生起就树立了桌面CPU霸主的地位,酷睿i系列更是无人能敌.它是Intel阻击AMD多核构架的救赎主,也是AMD复兴梦想的收割者.而Intel酷睿系列已经经历几代了,不知还有多少看 ...
- dADas
Linux(Centos)之安装Nginx及注意事项 - Kencery - 博客园 怪才(Kencery) 菜鸟的里程中只有奋斗,别无其他 博客园 首页 新随笔 联系 订阅 管理 Linux ...
- C语言基础笔试题一
1.下面的代码输出什么?为什么? void foo(void) { unsigned int a = 6; int b = -20; (a+b > 6)?puts(">6&quo ...
- angularJs购物金额实例操作
<!DOCTYPE HTML> <html ng-app> <head> <meta http-equiv="Content-Type" ...