二、算法
特性
有穷性
确定性
可行性
输入
输出
优劣
正确性
可读性
健壮性
时间复杂度
空间复杂度
基本结构
顺序结构
选择结构
循环结构
三、入门
标识符
必须以字母或下划线开头,不能以数字或符号开头
在C语言中是区分大小写字母的
标识符不能是关键字
数据类型
基本数据类型
int number;/*整型变量*/
float fFloat;/*浮点型变量*/
char cChar;/*字符型变量*/
enum Fruits{Apple,Orange,Mango};/*枚举类型*/
构造类型
int arr[5];/*数组*/
struct Student student;/*结构体*/
union season s;/*共用体*/
指针类型
不同于其他类型,其特殊性就在于指针的值是表示某个内存地址
int *p;/*指针类型*/
空类型
关键字是void,主要作用:
对函数返回值的限定
对函数参数的限定
当函数不必返回一个值的时候,就可以使用空类型设定返回值的类型
void input(){/*自定义无返回值函数*/
语句;
}
常量
整型常量
数据类型 | 长度 | 取值范围 |
---|---|---|
unsigned short | 16位 | 0~2^16-1 |
signed short | 16位 | -215~215-1 |
unsigned int | 32位 | 0~2^32-1 |
signed int | 32位 | -231~231-1 |
unsigned long | 64位 | 0~2^32-1 |
signed long | 64位 | -263~263-1 |
LongNum = 1000L;/*L表示长整型*/
UnsignLongNum=500U;/*U表示无符号整型*/
八进制
在常数前加上0修饰,数字0~7
十六进制
在常数前加上0x修饰,数字09,字母AF
十进制
数字0~9
存储方式
整型数据都是以二进制形式存储在内存中的,其数值是以补码形式来表示的。
正数的原码,反码,补码形式相同
负数的反码是对该数的原码除符号位外按位取反
负数的补码是将该数的原码除符号位外按位取反 再加1
实型常量
也称为浮点型,整数部分和小数部分用十进制的小数点隔开
F表示该常量为单精度
L表示该常量为长精度
默认为双精度
字符型常量
字符常量
使用单引号括起来的
只有一个字符
区分大小写
单引号代表定界符,不属于字符常量的一部分
字符串常量
使用双引号括起来的
若干字符
没有字符则称之为空字符串,长度为0
存储字符串常量时,系统会自动字符串常量的末尾自动加一个"\0"作为字符串常量的结束标志
因为有"\0",因此长度会多1
字符常量和字符串常量的区别
定界符使用不同
长度不同
存储方式不同,除了ascii还有结束符"\0"
转义字符
转义字符 | 含义 | ASCII码值 |
---|---|---|
\n | 回车换行 | 10 |
\t | 横向跳到下一制表位置 | 9 |
\v | 竖向跳格 | 0x0b |
\b | 退格 | 8 |
\r | 回车 | 13 |
\f | 走纸换页 | 12 |
\\ | 反斜杠\ | 47 |
\’ | 单引号’ | 39 |
\a | 鸣铃 | 7 |
\ddd | 1~3位八进制数所代表的字符 | |
\xhh | 1~2位十六进制数所代表的字符 |
符号常量
使用符号代替固定的常量值
变量
整型变量
数据类型 | 长度 | 取值范围 |
---|---|---|
unsigned short | 2字节 | 0~2^16-1 |
signed short | 2字节 | -215~215-1 |
unsigned int | 4字节 | 0~2^32-1 |
signed int | 4字节 | -231~231-1 |
unsigned long | 4字节 | 0~2^32-1 |
long int | 4字节 | -231~231-1 |
默认是int
实型变量
类型名称 | 关键字 | 字节 |
---|---|---|
单精度类型 | float | 4 |
双精度类型 | double | 8 |
长精度类型 | long double | 8 |
默认双精度
如需单精度,后缀加f
字符型变量
类型名称 | 关键字 | 字节 | 范围 |
---|---|---|---|
字符型 | char | 1字节 | -128~127 |
无符号字符型 | unsigned char | 1字节 | 0~255 |
变量的存储类别
静态存储:程序运行期间分配固定存储空间
动态存储:程序运行期间根据需要动态的分配存储空间
存储形式
自动auto
局部变量的存储方式默认是自动
静态static
在语句块执行期间,static变量将始终保持它的值,并且初始化操作只在第一次执行时起作用, 在随后的运行过程中,变量将保持语句块上一次执行的值
寄存器register
指定某个局部变量存放在计算机的某个硬件寄存器中,而不是存放在内存中,可以提高程序的运行速度,无法获得寄存器的变量地址
外部extern
外部存储变量,声明程序中将要用到但尚未定义的外部变量,通常外部存储类都用于声明在另一个转换单元中定义的变量
#include <stdio.h> #include "03-shiyong.h" int main() { extern int iExtern; printf("%d", iExtern); return 0; } #include <stdio.h> int iExtern = 100;