#pragma mark 11 在内存中如何存储数据 [掌握]
此知识点的复习时见第2天视频笔记/11 在内存中如何存储数据.pdf
"强调
1.坑是什么
"0" --> 1bit
"1" --> 1bit
01010101 -->每8位就是一个字节,Byte
坑 == 内存中的若干个字节(byte)
2.
坑中存储 == 数据 (整数、小数、字符 ...)
3.如果要找到坑,可以根据他的地址来寻找。16进制,0x开头
4.挖坑的时候为什么要给坑起一个别名?虽然坑(内存中若干字节)有地址,但是不好记。
坑的别名 ---> 可以找到坑 ---> 可以找到坑中存储的数据
挖坑的同时,做了两个事情
* 地址自动有了,系统自动分配
* 要有自己的别名
4.坑的类型 == 若干个字节里能保存什么样的数据 (int float doublechar)
为什么挖坑的时候要确定坑是什么类型的?
因为每个中数据类型占的字节不一样,如果不确定,就不知道向该坑分配多少字节
5.C 语言常见的数据类型
int 整数 -2147483648 ---- 2147483647
float 单精度小数(单精度浮点数) 有效位数不超过7位的小数,超过7位的部分就不能精确保存(随机)
有效位数:从左边开始第一个不为0的数开始数,数相应的位数
int main()
{
printf("%f", 12.3445654);
return 0;
}
double 双精度小数 有效位数不超过16位的小数,超过16位的部分不能精确保存
printf("%lf",12345678912345.127);
// 小数123.33 在内存中不是精确的保存,而是以一个无限接近的小数
char 字符 'A' 'B'
#pragma mark 12 变量的声明 [掌握]
此知识点的复习时见第2天视频笔记/12 变量的声明.pdf
"强调
1.变量的概念
变量 == 空间 == 坑 == 内存中若干个字节 == 用来存储数据
变量的值 == 坑中保存的数据
变量名 == 坑的别名 == 可以方便找到坑 == 可以找到坑中的数据
变量的类型 == 坑的类型 == 内存中存储的数据类型
"变量的本质 == 内存中开辟的空间
2.数据要保存在内存中的步骤
1>在内存中开辟一块空间
2> 开辟空间的同时指定空间的别名和类型
3> 这个空间的类型就决定了你能往这个空间保存的数据类型
3.声明变量的实现开辟空间,并且指定别名和类型
int num; // 这句代码一旦运行,CPU就在内存中开辟了一块空间,这块空间是int类型,这块空间只能保存int类型的数据
float num_f;
....
#pragma mark 13 为变量赋值 [掌握]
此知识点的复习时见第2天视频笔记/13 为变量赋值.pdf
"强调
1.
= 含义就是赋值,把等号右边的数据赋值到左边的变量中
2.等号右边的数据一定要是左边变量类型能表示的范围,否则数据出错。
int num;
num = 1.9;
3.等号右边的内容一定要和等号左边变量类型一样,否则也会出问题。
1)int
int num;
num = 1.9;
2) float
C语言中,写一个小数,默认是double类型
// 这是错的,不报警告的原因是xcode编译器进行处理,因为float 和 double都是小数
float num_f;
num_f = 23.44;
// 正确写法
num_f = 23.44f;
// 可以是f/F
3)double
double num_d;
num_d = 12.34;
4)char
char a;
a = 'fa';
1)char类型的变量只能存储单个字符,并且要用单引号括起来
2)只能保存一个字符,只保存最后一个字符
3)不能保存中文
不能保存中文的原因
一个中文字符要占3个字节,一个char类型的变量只能保存1个字节。
#pragma mark 14 使用printf函数输出变量的值 [掌握]
此知识点的复习时见第2天视频笔记/14 使用printf函数输出变量的值.pdf
"强调
1.为什么要C语言要有变量的存在?
1>变量的作用就是用来存储数据.
2>我们只有把数据存储起来才能使用它.
3>所以变量存在的意义就是让程序员能够使用数据.
2.printf函数的使用
1)方式一
printf("需要输出的内容");
printf("需要输出的内容\n");
2)方式二:使用占位符输出变量的值
printf("整形%d", 常量/变量);
printf("单精度小数%f", 常量/变量);
printf("双精度小数%lf", 常量/变量);
printf("字符型%c", 常量/变量);
// 也能直接打印常量
printf("%d", 12);
#pragma mark 15 使用printf函数一次输出多个变量的值 [掌握]
"强调
1. 如果输出的数据和前面要求输出的个数不一样,那么不匹配的那一项输出的是随机数
int main()
{
int num1;
num1 = 1;
float num2;
num2= 2.222f;
printf("第一个数 = %d 第二个数 = %f\n", num1);
return 0;
}
2. 双引号中的%后面占位符一定要和后面输出的数据类型一一对应,否则结果是错误的。
int main()
{
int num1;
num1 = 1;
float num2;
num2= 2.222f;
printf("第一个数 = %d 第二个数 = %f\n", num1, 'a');
return 0;
}
#pragma mark 16 使用变量需要注意的细节 [掌握]
"强调
1.变量这个概念十分重要,注意:
变量:就是内存中开辟的空间,用来存储数据
2.为什么有了double 还有 float ?
一个double类型的数据占用8个字节
一个float类型的数据占用4个字节
因为double类型变量代表的内存空间要比float变量占据的空间大,使用float节约内存空间。
3. 可以在定义变量的同时给他赋值
int num = 30;
4.可以批量定义多个类型相同的变量
// 只定义,不赋值
int num1, num2;
// 定义的同时,赋值
int num1 = 10, num2 = 29;
注意:不能批量定义类型不同的变量
5.注意赋值符号 = 两边留空格
6.如果定义一个变量,没有给他赋值,那么里面的数据是随机数
1)
int num;
printf("%d", num);
2)例子
int main()
{
int num;
printf("%d", num + 10);
return 0;
}
3)为了保证程序不出问题,定义变量的时候,就给他赋值
7.变量的值是可以改变的,注意,新的值直接覆盖原来的值,不是叠加。
8.可以把一个变量A的赋值给另一个变量B ,此时A 的值没有改变
9 变量使用之前一定要定义
10.不要在同一个大括号里定义同名变量。
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) | 黑马程序员IT技术论坛 X3.2 |