计算机的编译步骤:
预处理——编译——汇编——链接
预处理:包括宏定义展开,头文件展开,条件编译等,同时将代码中的注释删掉
编译:检查语法,将预处理后的文件编译生成汇编文件
汇编:将汇编文件生成目标文件(二进制文件)
链接:C语言写的程序是需要以来各种库的,所以编译之后还需要把库链接到最终可执行的程序中 去
后缀名:
C语言——> .c
C++——> .cpp
数据类型:
数据类型 | 表示方法 | 所占空间大小(Byte) |
字符型 | char | 1 |
短整型 | short | 2 |
整型 | int | 4 |
长整型 | long | 4 |
更长的整型 | long long | 8 |
单精度浮点数 | float | 4 |
双精度浮点数 | double | 8 |
这里要注意的是:系统会将小数默认为double的类型,所以要使用float型时,要在小数后面加f
变量的作用域:
作用域:是程序设计概念,通常来说,一般程序代码中所用的名字并不总是有效的,而限定这个名字的可用性的代码范围就是这个名字的作用域
- 全局变量:作用域是整个程序
- 局部变量:作用域是局部变量所在的局部作用范围
变量的生命周期:
生命周期:变量的创建到销毁之间的一个时间段
变量创建的本质:进入作用域生命周期开始,出作用域生命周期结束
销毁的本质:把空间还给操作系统
输入与输出:
输入:scanf() 输出:printf()
int a=0;
scanf("%d",&a);
printf("%d\n",a);
anf和printf是库函数
库函数是C语言的编译器提供的现成的函数,可以直接使用,使用的时候需要包含头文件<stdoi.h>
scanf的作用是输入数据,数据从键盘读取到内存中
printf的作用是输出数据,数据从内存打印/输出到屏幕上
常量:
常量包括:字面常量、const修饰的常量、#define定义的标识符常量、枚举常量
#include<stdio.h>
#define MAX 100; //define定义的标识符常量
enum Color
{
RED,
GREEN,
BLUE
};
int main()
{
30; //字面常量
const int a = 10; //const修饰的常变量
enum Color c = RED; //枚举常量
return 0;
}
字符串
C语言中没有字符串类型,而是用char + 用“ ”引起来的内容
char arr[] = "abcdef"; //7
char arr1[] = {'a','b','c','d','e','f','\0'}; //7
字符串结束的标志是’\0','\0'不算做字符串的内容,但是会占据一个内存空间
如果是以一个一个的字符来存放一个字符串,若没有'\0',系统会自动在后面添加其他内容,手动添加'\0'后,可结束该字符串
注释:
- //——>C++的注释风格,可以注释一行,也可以注释多行
- /* */——>C语言的注释风格,不支持嵌套
转义字符
\? | 在书写连续多个问号时使用,防止他们被解析为三字母词 |
\' | 用于表示字符常量' |
\" | 用于表示一个字符串内部的双引号 |
\a | 用于表示一个反斜杠,防止它被解析为一个转义序列符 |
\b | 警告字符,蜂鸣 |
\f | 退格符 |
\n | 进纸符 |
\r | 换行 |
\t | 回车 |
\v | 水平制表符 |
\\ | 垂直制表符 |
\ddd | ddd表示一个1-3个八进制的数字,如:\130 X |
\xdd | dd表示2个十六进制的数字,如:\x30 0 |
这里要注意的是,转化后的数字不能超过ASCII码的范围