1.1 C语言
- C语言是一种面向过程的语言
Objective C (OC) 是一种面向对象的语言
1.2 标准库
- 标准库在一系列的标准文件——头文件中指定。
头文件的扩展名是 .h
1.3 学习C
- 建议读者自己输入本书的所有示例
1.4 创建C程序
- C程序的创建过程有4个步骤:编辑、编译、链接、执行
1.4.1 编辑
编译器
编辑器
- 编辑过程就是创建和修改C程序的源代码——我们编写的指令就是源代码
- IDE集成开发环境(Integrated Development Environment )
1.4.2 编译
源文件
编译器可以将源代码转换为机器语言,在编译阶段的输入是在编辑期间产生的文件,常称为源文件编译器的输出结构称为对象代码(object code),
存放对象文件的称为对象文件(object file)
1.4.3 链接
- 链接器(Linker )将源代码文件中由编译器产生的各种对象模块组合起来,再从C语言提供的程序库中添加必要的代码模块,将它们组合成一个可执行的文件。
在Microsoft Windows 环境下,这个可执行文件的扩展名为.exe
1.4.4 执行
- 执行就是完成了编辑、编译、链接以后,运行程序。
源文件.c--> 对象文件.obj --> 可执行文件 .exe
1.5 创建第一个程序
#include <stdio.h>
int main(void)
{
printf(" Hello World! ");
return 0;
}
编译和链接在一个操作中完成,通常称为“构建操作”
1.6 编辑第一个程序
#include <stdio.h>
int main(void)
{
printf(""\ If at first you don't succeed, try , try , try again\" ");
return 0 ;//分号都是在英文状态下的
}
转义序列(escape sequence )
1.7 处理错误
- 编译器能精确指出错误及出处
刚开始编写程序的时候很容易出现错误,很多错误都是拼写错误造成的。很容易忘记语句后面的分号。
小错误却造成大的问题
1.8 剖析一个简单的程序
1.8.1 注释
位于/* 和*/之间的任意文本都是注释
如果忘记包含对应的*/,编译器就会忽略/*后面的所有内容,
/********************************************************** *
* *
* *
*********************************************************** *
- 代码行上两个斜杠后面的所有内容都会被编译器忽略
//
注释可以放在程序中的任意位置,说明代码的一般作用,制定代码是如何工作的
添加足够的注释,为确保日后自己能理解程序的作用和工作方式。
1.8.2 预处理指令
1.8.3 定义main() 函数
下面的5行指令定义了main()函数
int main (void)
{
printf("Beware the Ides of March!");
return 0;
}
定义main()函数的第一行代码如下:
int main(void) // This identifies the funcation main()
1.8.4 关键字
1.8.5 函数体
函数体是在函数名称后面位于起始及结束两个大括号之间的代码块
1.8.6 输出信息
printf() 是一个标准的库函数, 它将函数名后面引号内的信息输出到命令行上
双引号内的字符串称为字符串字面量
1.8.7 参数
包含在函数名后的圆括号内的项称为参数
1.8.8 控制符
反斜杠在文本字符串里有特殊的特殊的意义,它表示转义序列的开始。
转义序列 | |
---|---|
\n | 换行 |
\r | 回车键 |
\b | 退后一格 |
\f | 换页 |
\t | 水平制表符 |
\v | 垂直制表符 |
\a | 发出鸣响 |
? | 插入问号? |
'' | 插入双引号'' |
' | 插入单引号' |
\ | 插入反斜杠 |
1.11 函数及模块化编程
C程序的结构在本质上就是函数的结构
- 简化整个程序运转的过程
- 易处理与理解
- C语言中丰富的函数库大大增强了C语言的能力。
*也可以编写自己的函数库,
经常编写某个函数就可以编写它的通用版本
1.12 常见的错误
容易在for表达式后面的括号中加分号
for(); ////这是严重的语法错误
do-while循环的while表达式后面容易忘记分号;
变量超出作用域,但是编译器没有给出警告,就很难找出这个错误在那?
总是会把main 函数打错为: mian,总以为不会犯的错误,犯了好多次了。
各个括号之间的乘号不能省去。
度数怎么实现
乘方的上标如何实现的呢?
当程序很大的时候很难去命名变量名字
1.13 要点
Include指令把外部文件的内容包含到源文件
标准头文件,使用printf()函数时要在头文件中包含输入输出函数
函数体的开头
函数体的结束