变量常量 输入输出
main函数是程序的入口 一个程序有且仅能有一个main函数
1.变量
先声明后使用
- 声明后立即初始化 只能一次 int a =100
- 先声明再变量赋值 可多次 int a; a=100 初始化之后还能赋值
2.常量
- 字面常量 无需声明不可赋值 如1 hello
- 符号常量 格式:#defind 符号常量名 值
3.标识符
自己命名 表示变量
- 只能由大小写英文字母 数字 下划线组成
- 不能以数字开头
- 不能是已有关键词
4.关键词
- 特殊意义 直接使用 不可作标识符
数据类型
1.整型类型
表示整数
有符号占位符为%d %ld %lld
无符号占位符为%u %lu %llu
那么这个取值范围是怎么来的呢
首先 1个字节有8个比特 能表示2^8个数字
对于无符号整型 就是0到2^8-1
对于有符号整型 00000000表示的是正0 10000000表示的是负0 众所周知0没有正负 且没有其他数字的补码会是10000000 所以我们人为规定10000000是-2^7 即表示数字的范围是-2^7到2^7-1
补码
- 正数的补码是它本身
- 负数的补码如下
- 先写出对于正数的二进制
- 从二进制的右边开始 遇到第一个1之前 全部填0
- 把遇到的第一个1填下来
- 1之后的全部取反
2.浮点类型
表示小数或者指数 占位符为%f或%lf
- float 4字节 6位有效数字 或10^38
- double 8字节 精度更高 10^308
- 1.23e6 表示1.23*10^6 e或者E表示以10为底的指数 e前必须有数字 e后必须为整数
- longdouble占用几个字节取决于编译器
- 一个小数不声明是float还是double 默认double
3.字符类型
占位符为%c 就是整型类型的char 1字节
- 常量:printf(“字符串”) printf(“%c”,’字符’)
- 变量
- 转义字符:\数值(八进制) 用ASCII表查找
- 前31位不可见字符用/数值或字母表示 如12或n表示换行数值0表示字符串结束
常见转义字符
| 转义序列 | 含义 | 八进制 | 十进制 |
|---|---|---|---|
| \a | 报警 | 7 | 7 |
| \b | 退格 | 10 | 8 |
| \f | 换页 | 14 | 12 |
| \n | 换行 | 12 | 10 |
| \r | 回车 | 15 | 13 |
| \t | 水平制表 | 11 | 9 |
| \v | 垂直制表 | 13 | 11 |
ASCII表
变量的储存类型
内存的储存空间分为三部分
auto
用关键词auto的局部变量都是动态储存变量 执行到变量作用域结束时收回空间
c默认局部变量为auto 若未明确复制 变量的初值不定
static
用关键词auto的局部变量都是静态储存变量 空间保留至程序结束储存变量
静态类型变量均有确定的初值 当变量未指定初始值时 编译器设其初始值为0