编程语言大概分3类
- 机器语言:二进制的指令。
- 汇编语言:使用一些特殊符号(助记符)来表示二进制指令。
- 高级语言:抽象层次和表达能力更强的编程语言,用户写简单几句代码就能对应到几十条机器指令。
C,C++,Java,C#,Go,Python,PHP(世界上最好的编程语言),JavaScript,HTML,CSS等
为什么要学C语言
- 经典,天下武功,尽出自C。
- 简单,语法简洁明了。
- 底层,非常贴近硬件设备和操作系统。
- 应试,校招中的硬通货。
如何学好C语言
狂敲代码
计算机的组成
冯诺依曼体系结构
- 运算器
- 存储器
- 控制器
- 输入设备
- 输出设备
二进制
世界上只有10种人,一种懂二进制,一种不懂。
位,字节
位,又称“比特”(bit),是存储信息的最小单位。
字节,又称“拜特”(byte),是最常用的储存单位。
1 Byte => 8 bit
1 KB => 1024 Byte (thousand)千
1 MB => 1024 KB (million)百万/兆
1 GB => 1024 MB (billion)十亿
1 TB => 1024 GB
1 PB => 1024 TB
内存,地址
可以把内存想象成一个大走廊,有很多的房间,每个房间都有一个字节那么大,房间号就是这个内存对应的地址。
数据类型
char //字符数据类型
short //短整型
int //整型
long //长整型
long long //更长的整型
float //单精度浮点数
double //双精度浮点数
//可以通过sizeof函数来测定类型或变量的长度(单位:字节):
sizeof(类型名) 或 sizeof(变量名)
整型家族
char
unsigned char
signed char//关键字signed常省略
short
unsigned short [int]//[int]可省略
signed [int]
int
unsigned int
signed int
long
unsigned long [int]
signed long [int]
浮点数家族
float
double
构造类型(自定义类型)
数组类型
结构体类型 struct
枚举类型 enum
联合类型 union
指针类型
char*
int*
float*
void*
空类型
void表示空类型(无类型)
通常应用于函数的返回类型,函数的参数,指针类型
基本数据类型表示范围
char 无符号 0=>255,有符号 -128=>127
short 无符号 0=>65535,有符号 -32768=>32767
int 无符号 0=>42亿9千万,有符号 -21亿=>21亿
实践中的原则:
表示整数时优先考虑 int,表示小数优先考虑 double
变量
- 局部变量
作用域:当前代码块({……})
生命周期:跟随当前代码块 - 全局变量
作用域:整个工程
生命周期:跟随整个程序
创建变量就分配了内存,内存中可以存储一些数据,程序在运行过程中,变量的内容(内存中保存的值)是可以改变的。全局变量如果没有初始化,系统会给它赋值为 0,局部变量如果没有初始化,系统会给它随即赋值。全局变量和局部变量重名时,局部变量起作用。
常量
程序运行过程中不能发生改变
- 字面值常量
- const
- enum枚举
//举例
enum Sex {
MALE;//0
FEMALE;//1
UNKNOWN;//2
}
- 宏