c 02
1. c 步骤: 1>定义程序的目标 2>设计程序 3>编写代码 4>编译 5>运行程序 6>测试调试 7>维护修改
2. 用程序把源文件转换成可执行文件,典型的C通过编译和链接完成,编译期把源代码转换成中间代码,链接器把编写的目标代码,系统的标准启动代码和代码库合并,生成可执行文件;启动码充当程序和操作系统之间的接口;
3. 操作系统和C库经常使用一个或俩个下划线字符开始的标识符(_kkk),避免在自己的程序中使用
4. 最小存储单元位(bit),存储0或1; 字节(byte) 1字节为8位;
5. 浮点数分成小数部分和指数部分表示,分开存储;
6. %d十进制显示, %o 八进制显示, %x 十六进制显示;要显示前缀0.0x.0X 必须使用%#o, %#x,%#X;
7. 整数溢出,超出了相应类型的取值范围,到达表示的最大值时,会重新从起点开始;
8. sacnf()读取输入, &符号把输入值赋值给变量;
9.字符串都被存储在char类型的数组中,每个单元存储一个字符,一定以空字符结束,数组末尾字符\0,空字符,标记字符串的结束;
10. strlen() 返回字符串长度,不包括空字符;sizeof() 返回数组有多少存储单元,末尾空字符也计算在内;
11. 编译时替换,#define 常量名(NAME大写) 值 value 末尾不加分号;指定字符单引号,字符串双引号
12. const 用于限定一个变量只读,
13. limits.h float.h分别提供与整数类型,浮点类型大小相关信息; 最大值最小值;
14.
15.
16. 基本类型,整数类型,字符型,浮点型,枚举类型; 构造类型: 多种类型组合,数组类型,结构体类型,共用体类型; 指针类型, 指针的值表示某个内存地址;
空类型的关键字 void,对函数返回的限定, 对函数参数的限定;
常数前加0 表示八进制;0x表示十六制 0-9代表a-f;
整形整数以二进制方式存放,数值以补码形式表示,一个正数的补码与原码形式相同,负数的补码是将该数绝对值的二进制按位取反加1;
指数方式 45e2 表示4500,45e-2 表示0.45
Float num= 1.23F 单精度 LongDouble num= 2.34L; 长双精度
signed 有符号 unsigned 无符号
17.变量存储;静态存储,动态存储; 自动auto,静态static,寄存器register,外部extern;
auto修饰一个局部变量为自动,每次执行到定义该变量的时候,都会产生一个新的变量,重新进行初始化; 可以省略
static变量,在语句块执行期间,static变量将始终保持它的值,初始化操作只在第一次执行时起作用,随后的运行过程中,变量将保持语句块上一次执行的值
register目的把某个局部变量放在计算机的某个硬件寄存器而不是内存中;
extern 外部变量,声明了程序中将要用到但尚未定义的外部变量;
18.++ -- ,运算符放在变量前面,在参加表达式运算之前完成自增,自减;
逻辑运算符优先级由高到低,! && || ;
^ 位逻辑非 ~ 取补 ;
19. 字符输出 putchar(int ch)函数,字符输入getchar(),
字符串输出 puts(char * str);在字符串中判断\0结束符, 自动换行; 字符串输入gets(char * str),
20. 转移语句,goto break continue
goto 标识符: 无条件转向语句,标识符在函数内部;
continue,返回循环头部继续循环,而不是跳出循环;
21. 数组定义, 类型 标识 [表达式];
数组初始化 int array[5] = {1,2,3,4,5,};
22. 字符串复制 strcpy(目的字符串数组名, 原字符串数组名); 目的字符数组有足够的长度,必须写成数组名形式;源字符数组可以是字符数组名,也可以是一个 字符常量,相当于把一个字符串赋予一个字符数组; 不能用赋值语句将一个字符串常量或字符数组直接赋给一个字符数组;
字符串连接, strcat(目的字符数组名, 源字符数组名) 连接到目的字符串后并删去原有的\0;
字符串比较, strcmp(字符数组名1, 字符数组名2) 返回比较结果; 相等为0, 正数 1>2; 负数 1<2;
字符串大小写转换 strupr(字符串) strlwr(字符串) ;
strlen(字符数组名) 计算实际长度,不含\0
23. 内部函数,只局限在函数所在的源文件中, static 返回值类型 函数名 (参数列表)
外部函数,可以被其他源文件调用的函数,extern 修饰,使用一个外部函数,先用extern 声明 extern int add(); 默认是外部函数
24. 局部变量,在一个函数内部定义的变量;
全局变量,一个变量在所有函数的外部声明,在程序中任何位置进行访问,外部文件要使用,extern进行修饰
25. 函数库
#include<math.h> abs(); 求绝对值; labs()函数 求长整数的函数; fabs() 返回浮点数的绝对值; sin(double x)正弦函数; cos(double x)余弦函数;tan(double x)
#include<ctype.h> isalpha(int ch);如果参数是字母表中的字母,返回非零; isdigit(int ch) 如果是数字返回 零;isalnum(int ch) 如果参数是一个字母或数字,返回非零,否则返回零