C语言——>早期不成熟——>成熟——>流行
国际标准
ANSIC——C89/C90
C99/C11并不流行--不少编译器不支持
%d——打印整型
%c——打印字符
%f—打印浮点数字—打小数
%p—以地址的形式打印
%x—打印16进制数字
变量的分类
- 局部变量
- 作用域:变量所在的局部范围
- 生命周期:进入作用域生命周期开始,出作用域生命周期结束。
- 全局变量
- 作用域:整个工程
- 生命周期:整个程序的生命周期。
数据类型
char //字符数据类型 1
short //短整型 2
int //整型 4
long //长整型 4
long long //更长的整型 8
float //单精度浮点数 4
double //双精度浮点数 8
常量
- 字面常量 :直接写出来的。
- const修饰的常变量:
#include<stdio.h>
int main()
{
const int num=10;
printf("%d\n",num);
}
- #define定义的标识符常量
#define MAX 10
- 枚举常量
#include<stdio.h>
enum Sex
{
MALE,
FEMALE
};
int main()
{
printf("%d\n",MALE);
}
字符串:用双引号括起来引起来的一串字符
注意:结束标志\0
char arr[] = "abc";
char arr1[] = { 'a','b','c' };
printf("%s\n", arr);
printf("%s\n", arr1);
return 0;
arr输出结果:abc
arr1输出结果:abc烫烫烫
arr结束后自动有\0 arr1结束需要手动补\0
操作符:
- 算术操作符:+ - * / %
- 移位操作符:>> <<
- 位操作符:& (按位与) | (按位或) ^(按位异或)
- 赋值操作符: = += -= *= /= &= ^= |= >>= <<=
- 单目运算符:!- + & sizeof ~(按位取反) -- ++ *
- 逻辑操作符:&&(逻辑与) ||(逻辑或)
- 条件操作符:exp1 ?exp2 :exp3
- 逗号表达式:exp1,exp2,exp3,...expN
- 下标引用、函数调用和结构成员:[](下标引用操作符) ()(函数调用操作符) . ->
常见关键字
auto、break、case、char、const、continue、default、double、do、else、enum、extern、float、for、goto、if、int、long、register(寄存器关键字)、return、short、signed(有符号的)、unsigned、sizeof、static(静态的)、struct、switch、typedef(类型重命名)、union(联合体/共用体)、void(空)、volatile、while
define、include不是关键字,是预处理指令
static(静态的):
- static修饰局部变量,改变了局部变量的生命周期(本质上改变了变量的存储类型)
- static修饰全局变量,使得这个全局变量只能在自己所在的源文件(.c)内部使用,其他源文件不能使用(全局变量在其他源文件内部可以使用,是因为全局变量具有外部链接属性,但是被static修饰后,就变成了内部链接属性,其他源文件就不能链接到这个静态的全局变量)
- static修饰函数
int text()
{
static int a = 1;
a++;
printf("%d ", a);
}
int main()
{
int i = 0;
while (i<10)
{
text();
i++;
}
return 0;
}
输出结果:2 3 4 5 6 7 8 9 10 11
static修饰的a不销毁
计算机中数据可以存在哪里?
- 寄存器 小
- 高速缓存 几十MB
- 内存 8G-16G
- 硬盘 500G
- 网盘 2T