内容简介
本书一共有八个项目,分别是导言、类型、运算符与表达式、控制流、函数与程序结构、指针与数组、结构、输入与输出、UNIX系统接口。
前言
本书是C语言基础,其实就是把《The C Programming Language》的读书笔记。
读书要写笔记,读一点写一点,可以写成有系统的笔记。
每天写作的内容不能确定,有空就写,没空就不写。方证大师说:“练一天有一天的好处,练一时有一时的好处。”写一段有一段的好处,写一句有一句的好处。
项目一 导言
1.2 变量与算术表达式
温度转换程序
#include <stdio.h> int main() { int fahr, celsius; int lower, upper, step; lower = 0; upper = 300; step = 20; fahr = lower; while (fahr <= upper) { celsius = 5 * (fahr - 32) / 9; printf("%d\t%d\n", fahr, celsius); fahr = fahr + step; } }
1.4 符号常量
在1.2节变量与算术表达式中讲过一个温度转换程序,程序如下。
#include <stdio.h> int main() { int fahr, celsius; int lower, upper, step; lower = 0; upper = 300; step = 20; fahr = lower; while (fahr <= upper) { celsius = 5 * (fahr - 32) / 9; printf("%d\t%d\n", fahr, celsius); fahr = fahr + step; } }
在这个程序里面,变量upper和step是幻数。幻数没有具体意义,不能提供信息,修改困难。幻数的处理办法是定义幻数,通过符号常量将其定义为字符串。符号常量的语法如下。
#define 名字 替换文本
使用名字的本质是使用“替换文本”
注意
符号常量不等于变量,不出现在声明中,全用大写,没有分号。
用符号常量对温度转换程序进行修改
#include <stdio.h> #define LOWER 0 #define UPPER 300 #define STEP 20 main() { int fahr; for(fahr = LOWER; fahr <= UPPER; fahr = fahr + STEP) printf("%3d %6.1d\n",fahr,(5.0/9.0)*(fahr-32)); }
1.7 函 数
函数为“计算过程的封装”,也就是说函数是对计算过程进行的封装。比如一个一元二次方程,我们列竖式进行计算,列竖式就是计算过程。函数将这个计算过程进行封装,使用者将看不到计算过程。函数就是一个黑盒子。
使用函数,不用管函数是如何实现的。只需要知道函数具有哪些功能,无需管功能是怎样实现的。
函数分为两种,一种是自定义函数,一种是函数库函数。
自定义函数,需要使用者自己定义,要学习函数定义的方法。
函数库函数,是已经封装好的函数,如printf()、getchar()、putchar()函数等。
对于函数库函数,使用者只需要知道函数具有的功能即可,无需自定义函数的功能。
下面自定义一个指数计算函数,函数命名为power(m,n),能够实现的功能是计算整数m的n次幂。
该程序分为三步完成,第一步是定义函数,第二步是主程序调用函数,第三步是合并程序
第一步,定义函数
#include<stdio.h> int power(int base,int n) { int i,p; p = 1; for(i=1;i<=n;++i) p = p * base; return p; }
第二步:main()函数调用power(m,n)函数
int power(int m,int n); main() { int i; for(i=0;i<10;++i) printf("%d %d %d\n",i,power(2,i),power(-3,i)); return 0; }