2.1 编写一个简单的 C 程序
2.1.2 编译和链接
把程序转化为可执行的形式总共分三步:
- 预处理:预处理以 # 开头,这里讲一下
#include
,它的意思是包含一个源文件,比如我们的 printf 方法,实际上 C 语言本身是没有这个输入输出方法的,是后来的人为了方便写的一个可以理解为“库”的头文件,以后我们只要调用 #include就可以快速实现输入输出功能了。而且,当加入了预处理后,源文件将比你自己写的程序大,因为相当于你引入了别人的代码。 - 编译:接下来程序进入编译器,编译器将程序员看得懂的 C 语言代码翻译成计算机才能识别的机器指令(目标代码)
- 链接:将目标代码和其他附加代码整合在一起,形成最后可执行的程序
开心的是,如果你使用的是像 Dev 一样的 IDE ,那么软件将会帮你自动完成这些工作
2.2 简单程序的通用格式
C 语言用 { },来标识程序块的开始和结束,在一些语言中你可能看到 begin 和 end ,二者的作用一样
2.2.2 函数
- 函数分为两大类:一个是程序员自己编写的函数,另一种是库函数,就是类似于
中包含的那些函数 - 任何程序必须有一个 main 函数
注意:
printf("111");
这个东西叫字符串字面量
2.3 注释
C 语言的注释有两种形式,单行和多行
// 注释
/*
多行注释
多行注释
多行注释
多行注释
多行注释
多行注释
*/
当然也可以比较花哨
/*************************
* 盒型注释 *
* 盒型注释 *
* 盒型注释 *
* 盒型注释 *
*************************/
2.4 变量和赋值
- float 变量需要的存储空间大于 int 变量,而且运算也更慢,同时 float 存储的是近似值,比如数据 999-999-999,最后得到的结果可能是 10-000-000-000.
2.4.4 显示变量的值
- 对于 float 而言,%f 是用于显示其结果占位符,就像上方。默认 %f 显示小数点后 6 位。如果你想让其显示 n 位,语法如下:%.nf,其中 n 表示想显示的位数。
#include <stdio.h>
main()
{
float a = 3.14159265;
printf("%f\n%.2f\n%.10f",a,a,a);
}
// 输出
3.141593
3.14
3.1415927410
2.4.6 初始化
如果你没有给变量赋初值,而输出变量的值,那么值可能是 0(某些变量会自动赋值位 0) 或者是一些其他奇怪的数值。
#include <stdio.h>
main()
{
float a;
int b;
char c;
printf("%f %d %c",a,b,c);
}
// 输出
0.000000 0
2.6 定义常量
常量就是程序中那些固定不变的量,与变量对应。
通常我们用 #define 来定义常量,就像这样:#define CONST 100
常量的定义通常位于程序的最上方,且和#include
一样不加分号,因为是预处理指令,特别注意的是常量通常都是以大写字母命名的,虽然不是 C 语言本身的要求,但这是代码规范。
#include <stdio.h>
#define CONST 100
main()
{
int a = CONST+100;
// CONST = 10; 常量是不能在定义后对其进行赋值的,会报错
printf("%d %d\n",CONST,a);
}
// 输出
100 200
2.7 标识符
标识符用于对变量,函数,宏等进行命名,其命名的规范是,标识符只能由字母,数字,下划线组成,并且必须以字母或者下划线开头。
注意:
- C 语言是区分大小写的,如,Name 和 name 是不同的标识符
- 对于长的标识符,通常采用两种规范进行命名
- symbol_table
- symbolTable
关键字
在对标识符命名时,避免采用以上关键字,这些是 C 语言自己使用的特殊字符,都是有各自作用的。