目录
0.变量
如果编程的时候,想要存储个数据,就要在电脑内存里找个空间存放,而变量就是存放数据空间的名称。C语言对数据划分的很严格,存放数据的时候要考虑数据是整数、小数还是字符。
char是字符型,代表要存放的数据是个字符。int是整型,flaot是单精度浮点型,double是双精度浮点型。
小数在内存中默认使用双精度浮点型double
所以第8行,10.1是double类型,会有警告精度丢失。第七行没有的原因是因为10.0小点数后面没有数字,和10等价,就不存在单精度还是双精度的问题了。而在10.1后面加个f就代表这个小数是flaot类型,就不会有警告,但是不能直接10f会报错。
1.打印格式
1.1打印格式
小数点打印默认精确到后五位,如果多余第六位会四舍五入(.4)代表打印小数点后四位
输入和输出打印格式相同
- %x 打印16进制
- %o 打印8进制
- %s 打印字符串
- %u 打印无符号整数
- %d 打印十进制数
- %c 打印字符
- %p 打印地址
- %f 打印float单精度浮点数
- %lf 打印double双精度浮点数
1.2类型占内存空间大小
计算机内存最小的单位是比特位,bit。因为,一个开关的开或者关(1或者0)代表一位。而规定8个bit等于1个字节Byte,在上面是1KB=1024Byte,(GB,TB,PB...)
这里打印的是字节B,其中short其实就是short int短整型。
C标准:sizeof(long)>=sizeof(int)
sizeof是C语言中的关键字
2.实现简单的求和
第8行代表,将输入的两个数,存放到a,b的地址中。scanf里面怎么写,输入的时候就要怎么写,严格一样,默认空格隔开,例如%d,%d那么输入就要3,4。这里可能有的编译器会报错,只要将c在前面定义一下就行了。
C标准:变量定义要在当前代码块最前面
3.作用域
3.1局部变量
变量作用域代表变量可以使用的范围,出了使用范围就会被销毁,不能再使用。
变量a是局部变量,作用域是main函数内部。变量b是局部变量,作用域在它附近的{}大括号里,所以出了作用域,b就被销毁了,所以第13行显示没有定义的标识符。
3.1全局变量
全局变量a的作用域是整个main函数,所以都能使用。
不仅仅在同一个源文件,在一个项目中也能被使用,需要extern。
4.生命周期
局部变量:进入作用域生命周期开始,出作用域生命周期结束
全部变量:整个程序的生命周期,也是main函数的生命周期。
5.常量(4种)
5.1字面常量
像3,a这种的就是字面常量。
5.2const修饰的常变量
const修饰的变量具有常属性,这里代表a还是变量,不过已经有常属性了。通俗来说,就是a不能被修改了,已经被const修饰,a就只能是3了。
不过,a还是变量。例如定义数组大小的时候要用常量指定大小,但是const修饰后的a却不行。a本质是变量,不过不能修改
5.3#define定义的标识符常量
define是指令,不是关键字,后面不接;
define是严格的替换,如果后面接了;那么;也会被替换
define定义的标识符习惯大写
5.4枚举常量
生活中可以通过个数确定完的数,是常量,不可以修改(注意标点符号)