C语言程序设计(谭浩强)-学习笔记 word(3)
个人学习谭浩强 的 c语言程序设计 笔记
3.6 不同类型数据间的混合运算
不同类型数据进行混合运算时,不同类型的数据要先转换成同一类型,按照
类型级别由低到高(char,short—int——unsigned—long—double;float—double)的顺序进行转换。
强制类型转换——(类型名) 表达式。强制类型转换也就是将存储数据的
内存单元强制转换为另一种数据类型的单元大小。即强制将存放数据的内存单元改变。
赋值时进行类型转换:将数据复制给变量时,将会将数据强制转换为要赋值
变量的类型。一般短类型转换为长类型时,进行符号扩展;长类型转换为短类型时,仅赋值低位,难以保证数据的正确性。
3.7 函数的调用过程(补充)
C函数其实就是一个程序模块。
C函数在编译时,单独编译成一个指令模块,在函数模块开始处定义保护现
场指令,将用到的CPU寄存器压入堆栈。在返回时定义了恢复现场指令,将堆栈数据恢复到CPU寄存器。
在调用函数时,一般利用堆栈传递输入参数;利用EAX传递输出参数,注
意在函数调用完成后,要维持堆栈平衡,且函数返回输出参数在EAX中,在使用输出参数前,不要改变EAX的值。
第四章 最简单的C程序设计——顺序程序设计77
4.1 字符数据的输入输出
1、C语言没有输入输出语句,IO操作通过调用系统函数实现。
2、在程序的开头,要有:#include “stdio.h”或 #include <stdio.h>,预定义语句,用来引用头文件,在编译时将头文件中的函数原型声明添加到源文件中。
默认输出设备——显示屏,默认输入设备——键盘。
个人学习谭浩强 的 c语言程序设计 笔记
第五章 选择结构的程序设计97
第六章 循环结构程序设计
6.1 语句标号
语句标号——用于定义程序中的某个位置,用标识符表示,不能只用数字。
6.2 break语句和continue语句
1、break语句结束循环语句和switch语句。
2、continue 结束本次循环,即忽略循环体中剩余的语句。
第七章 数组132
7.1 构造类型
构造类型——是由基本类型按照一定规则构造而成的。(如数组、结构体、共同体、枚举型)
构造类型的每个分量(元素),是一个变量,它可以是一个简单类型或者构造类型。
构造类型的分量占用相邻的存储空间。
7.2 数组133
1、数组——是有序数据的集合,数据元素类型相同,顺序存储,占用相邻的存储空间。
2、数组——数组必须先定义后引用。静态数组变量定义时编译器自动初始化数据元素为0,动态数组变量在程序执行时分配存储空间,在未被赋值初始化之前其值随机。
3、C语言只能逐个引用数组元素,不能一次引用整个数组。
4、数组引用是“数组名+下标”引用,数组下标均为整数。如a[2]。
7.3 二维数组
1、数组元素为数组。
个人学习谭浩强 的 c语言程序设计 笔记
2、在内存中,C语言的二维数组中数组元素的存放顺序是按行存放的。
3、二维数组引用是“数组名+下标+下标”。如a[1][2]。
7.4 字符串——字符数组
1、一般用\0来标识字符串结尾。\0占用一个字符变量空间。
2、用字符串赋值字符数组时,C编译器在字符串后自动加\0赋给字符数字。
3、字符数组可以一次引用整个字符串数组。如整个字符串(数组)的输入输出,用%s格式,且在输入字符数组时,用数组名代表数组的首地址,对于二维数组,仅仅写行下标不写列下标,也可以代表给行数组的首地址。
在用%s输入输出字符串数组时,遇到\0结束。
7.5 字符串处理函数 #include <string.h>
1、gets(字符数组名)
从键盘输入一个字符串(以回车结束),并返回字符数组的起始地址。
如get(str)。
2、puts(字符数组名/字符串)
将数组中的字符串(\0结尾的字符序列)输出到终端上,输完换行。
如puts(str),puts(“ok”)。
3、strcpy(目的字符数组1名,源字符串/字符数组2名)
拷贝时,将“\0”一起拷贝过去。
4、strcat(字符数组1名,字符串/字符数组2名)
将字符串/字符数组2连接到字符数组1中。
连接时,编译器去掉字符数组1的“\0”。
5、strcmp(字符串/字符数组1名,字符串/字符数组2名)
比较字符串/字符数组1名 和字符串/字符数组2名的大小。
字符串/字符数组1>字符串/字符数组2,返回正数
字符串/字符数组1=字符串/字符数组2,返回0
字符串/字符数组1<字符串/字符数组2,返回负数。
个人学习谭浩强 的 c语言程序设计 笔记
第八章 函数153
8.1 c程序的结构154
1、一个C程序可以分为若干个函数。
2、每个程序只能有一个主函数,C程序的执行从main函数开始,从main函数结束。
3、函数间可以互相调用,但主函数不能被调用。
4、从用户角度看,函数可分为标准函数(库函数)和自定义函数。其中,编译器仅编译自定义函数,在连接时才将标准库函数的目标代码连接到程序。
5、一个C源程序由一个或多个文件构成,一个源程序文件是一个编译单位。
8.2 函数调用参数传递
1、值传递——如数值形参。此时,将实参值复制压栈,被调函数对复制到栈中的数值进行操作,不改变原来实参值。
2、地址传递——如数组形参(指针形参),此时,将实参数组的首地址压栈,被调函数引用实参数组的首地址,找到实参数组,对实参数组进行操作,改变实参数组值。即形参数组和实参数组共享同一单元。
8.3 函数变量的作用范围
1、局部变量——在定义局部变量的范围内有效。当局部变量重名时,有效范围小的优先。
在函数内部定义局部变量
函数的形式参数
在某个复合语句中定义的变量。
2、全局变量——在函数之外定义的变量。有效范围是从定义变量的位置开始到源文件结束。
8.4 变量的存储类别
变量的存储类别,即生存期。内存中供用户使用的存储空间包括:程序区、静态存储区、动态存储区。
个人学习谭浩强 的 c语言程序设计 笔记
1、静态存储区——在编译时分配空间,在程序运行完后才释放存储空间。存储静态局部变量和全局变量。
局部静态变量在编译时赋初值,在执行时可改变该值,但该存储空间一直保
存到程序结束。
定义局部静态变量,如果没有赋初值,编译时会自动赋默认初值。
局部静态变量只能在定义它的函数中使用。
全局变量都是静态的。
利用extern 外部变量方式表示变量的定义在别的文件中,提示编译器遇到此
变量时,在其他模块中寻找其定义。而函数则是利用函数原型来声明。
用static 关键字说明一个不能在其他源文件中引用的全局变量。即静态全局
变量在声明它的整个文件都是可见的,但是在文件之外是不可见的。
2、动态存储区——仅在在执行时分配空间,用完后释放存储空间。存放自动变量和形式参数。
寄存器变量——用register关键字说明。寄存器变量对寄存器的占用是动态
的。
第九章 预处理命 …… 此处隐藏:2471字,全部文档内容请下载后查看。喜欢就下载吧 ……
相关推荐:
- [教育文库]夜场KTV服务员的岗位职责及工作流程[1]
- [教育文库]企划、网络、市场绩效考核方案
- [教育文库]学党史、知党情、强党性--“党的基本理
- [教育文库]2016年高考物理大一轮总复习(江苏专版
- [教育文库]干部廉洁自律自查自纠的报告
- [教育文库]2010年北京大学心理学系拟录取硕士研究
- [教育文库]资金时间价值练习题及答案
- [教育文库]保护环境的心得体会
- [教育文库]英语角内容:英语趣味小知识
- [教育文库]档案收集与管理工作通知
- [教育文库]劳动规章制度范本范本
- [教育文库]高考物理一轮复习课后限时作业1运动的
- [教育文库]机械工艺夹具毕业设计195推动架设计说
- [教育文库]通用技术教学比赛说课稿2
- [教育文库]2018年四年级英语下册 Module 7 Unit 2
- [教育文库]第2章 宽带IP网络的体系结构
- [教育文库]九年级化学第五单元课题3《根据化学方
- [教育文库]小学英语六年级情态动词用法归纳
- [教育文库]甲级单位编制窑井盖项目可行性报告(立
- [教育文库]2016-2021年中国城市规划行业全景调研
- 高考英语听力十大场景词汇总结
- 全省领导班子思想政治建设座谈会会议精
- 人教版新课标高一英语提优竞赛试题 下
- 江西省2014年生物中考试题
- 长沙镇食品药品安全事故应急预案
- 《金刚石、石墨和C60》片段教学设计
- 福州教育学院(王旭东)
- 基于EDA音乐播放器的设计
- 9、古诗两首《夜书所见》《九月九日忆
- 小学语文课外阅读有效策略探讨
- 贵州文化产业发展成支柱产业的问卷调查
- 膀胱类癌的诊治体会(附3例报告)
- 发动机积碳产生的原因
- Configuring Code Composer Studio for
- 学生良好的心理素质如何培养点滴谈
- 46 电沉积法制备锂离子电池用硅-锂薄膜
- 美舍雅阁公司管理中各部门职责
- 去壳剥皮的小妙招
- 六自由度运动平台的仿真研究
- Pride and Prejudice(傲慢与偏见)




