C语言单元小结(2)
来源:互联网 发布:list是集合还是数组 编辑:程序博客网 时间:2024/05/22 12:12
宏
知识点
功能:宏可在预编译时将程序中某些内容直接替换,没有优先级
带参宏:
带参宏与普通函数的比较:
1.带参宏不必指定参数类型,而函数只能传递某个类型的参数。
2.带参宏在预编译时直接替换,比函数调用更有效率,开销更小。
3.带参宏只适用于较小篇幅的函数,否则会大幅增加程序的长度,使得效率反而降低。
带参宏与内联函数的区别:
宏在预编译时替换,而内联函数在编译时替换,两者都可用于简短的功能函数。
由于宏只替换没有优先级的性质,在使用宏时注意括号的添加
实现
1.宏的直接替换
2.利用带参宏实现三目运算
行缓冲
输出行缓冲:
以\n为输出结束标识符,若没有该换行符,则将一直运算至缓冲区填满后或运算结束后一起输出。
输入行缓冲:
以\n为输入结束标识符,若不键入换行符,则一直等待输入。
隐式转换
知识点
1.低精度向高精度转换安全:float->double
高精度直接截断
2.小范围转换至大范围:->unsigned,char->int
3.输出时也会进行类型转换,若int类型用%u输出,则将转换为unsigned类型后输出。
实现
1.int类型的a转化为float类型,与b相加后截断为int类型赋值给c
2.将int类型转换为unsigned int类型
也可以写为
0,’0’,’\0’的区别
0是数字零
‘\0’是一个char字符,功能是标志一个字符串的结束,对应的数值是0
‘0’是一个char字符,对应的数值是48
函数
知识点
返回类型 函数名(参数)
main函数
知识点
int main (int argc,char *argv[])
int表示返回值为int类型,作为程序的入口,返回值给父进程
argc表示参数个数
argv[]表示参数列表
shell是父进程,传参数给main的argv
实现
功能:argc为传入参数的个数,该程序可以依次打印出argv[]中的参数
递归函数
知识点
利用栈的构建特性实现层层调用
实现
输出fibo数列的指定位
迭代函数
实现
其他函数
实例
1.strcmp函数
功能:可以man3看到strcmp函数的返回值,字符串a小于b则返回为负数,等于则返回零,大于则返回正数。由此可见函数返回值的定义、传递和表达。
2.printf函数
功能:查看printf函数的参数传递,可以发现,printf函数参数由右向左传递
实践
1.利用函数调用实现加减乘除
知识点
标准格式要求:函数的声明在main之前,末尾需要加分号,定义在函数之后
实现
头文件调用与函数声明
main函数
函数定义
2.编写函数,计算数字二进制形式中1的个数
知识点
计算机使用补码存储,本题即为计算补码中1的个数
正数的补码是原码本身,负数的补码是反码加一
正数位移后补零,负数位移后补一
思路
按位将数字与1相与,若结果不为0则该位为1。考虑到负数位移补1陷入死循环的情况,选择位移相与的1,则该1位移后不为1,而是对应位为1。
实现
功能函数
主函数
3.编写函数,实现strcmp函数功能
功能函数
主函数
3.编写函数,实现memset函数功能
4.编写函数,实现strcpy函数功能
5.编辑函数,输入命令显示是否合法
- C语言单元小结(2)
- C语言单元小结(1)
- C语言单元小结(3)
- C语言单元小结(4)
- C语言单元小结(5)
- C语言单元小结(6)
- Linux单元小结(2)
- C语言小结2
- 程序设计入门C语言单元测验
- C语言小结
- c语言小结
- C语言小结
- c语言笔试小结
- C语言小结
- C语言指针小结
- c语言学习小结
- C语言关键字小结
- 19、C语言小结
- caffe学习--参数调整
- Debian搭建Qt 5开发环境
- java集合Collection中的两种遍历
- poj 1182 食物链 —— 种类并查集
- CCF考试-门禁系统(201412-1)
- C语言单元小结(2)
- next方法和nextLine方法的区别?
- 五:第一个Hello World程序
- qt读中文乱码
- poj1631 Bridging signals(同51Nod1134)
- caffe练习
- 微信公众号文章的爬取(搜狗微信搜索)
- 使用xml写一个关于textSize的selector
- hadoop环境搭建