2017-7-19 C基础和数据类型
复习完成时间2017-7-19 22点
复习知识点:
一、C基础内容
1、计算机语言分类:
①机器语言②汇编语言(可读性、移植性差)③高级语言(c,java等)④脚本语言(如Python)
2、C语言特点:
语言简洁,紧凑,灵活(32关键字,9控制语句);运算符丰富;结构化语言(函数);能够对硬件和内存进行操作;代码质量和效率高;移植性好;
3、C文件可以由预处理命令、全局变量声明、函数和注释组成。
4、一个C程序有且仅有一个main函数。
5、函数由函数的首部(函数第一行)和函数体组成。
6、函数体由声明部分和执行部分组成。
7、多行注释用/*开始,用*/结束,一行注释用//标出
函数前注释内容:函数名;函数功能;函数参数;函数的返回值。
8、VC使用:
文件新建Win32 Console Application空工程
文件新建C++ Source File,建立.c文件
ALT+F8 对齐快捷键
shift+tab 批量缩进
编译(ctrl+F7);组建(F7);运行(ctrl+F5);
调试:Go(F5);debug(F9);step out(F10);step into(F11);
查看变量,内存(memery)
9、程序=算法+数据结构+程序设计方法+语言工具和环境
二、数据类型
10、数据类型分为四大类:
(1)基本类型:整型,字符型,浮点型(单精度型,双精度型),枚举类型
(2)构造类型:数组类型,结构体类型,共用体类型
(3)指针类型
(4)空类型(不能定义变量)
11、符号常量:
#define NUM 100 //编译后,所有NUM用100替换
cons int NUM=100 //const常量具有不可变性, 节省空间,避免不必要的内存分配
12、标识符:
(1)标识符由字母、数字和下划线组成;
(2)标识符的第一位必须是字母或者下划线,不能是数字;
(3)区分大小写
13、
char 8位 ASCII码:空格 32;A 65;a 97。
int 32位 值范围 -2^31~(-2^31-1)(根据系统位数决定位数)
float 32位 7位有效数字
double 64位
14、进制转换
十进制转其它进制:短除法,将余数逆序排列
其它进制转十进制:按权展开相加
二、八、十六进制转换以二进制为中间值转换,八进制3位,十六进制4位
十进制无前缀,八进制前缀为0,十六进制前缀为0x。
小数转换二进制:小数乘以2,取整,小数部分继续乘以2,取整,得到小数部分0为止,将整数顺序排列。0.8125的二进制是0.1101
15、原码、反码、补码
在计算机系统中,数值一律用补码来表示和存储。
char字符用ASCII存储
正数:原码=反码=补码
负数:原码符号位为1;反码:符号位不变,其它取反;补码:反码+1.
一个负整数(或原码)与其补数(或补码)相加,和为模。
16、%lg根据double型数据自动选择以实数或科学计数法输出(自动适应小数位)
%e 以科学计数法输出
17、float在内存中的存储方式(178.125为例)
第一步:将128.125表示成二进制数:(178.125)(十进制数)=(10110010.001)(二进制形式);
第二步:将二进制形式的浮点实数转化为规格化的形式:(小数点向左移动7个二进制位可以得到)
10110010.001=1.0110010001*2^7 因而产生了以下三项:
符号位:该数为正数,故第31位为0,占一个二进制位.
阶码:采用移位存储,指数为7,故其阶码为127+7=134=(10000110)(二进制),占从第30到第23共8个二进制位.
尾数为小数点后的部分, 即0110010001.因为尾数共23个二进制位,在后面补13个0,即01100100010000000000000
所以,178.125在内存中的实际表示方式为:
0 10000110 01100100010000000000000
取值范围看指数部分:
float是有符号型,其中,8位指数位,2^8=(-128—127),因此实际的范围是-2^128—2^127,约为-3.4E38—3.4E38
同理double范围约是-1.7E308—1.7E308,
精度是看尾数部分:
float尾数位23位,2^23=8.3E6,7位,所以不同的编译器规定不同,有些是7位,有些8位
double尾数52位,2^52=4.5E15,15位,所以double的有效位数是15位
18、数据在内存中存储方式:
大端模式:高存低,低存高;小端模式:低低,高高;(一般默认小端)
未理解的知识点:基本都理解了
作业完成情况:已提交
心得体会:因为之前有学过,所以刚开始比较轻松些,后面结构体以后部分没教过,进程这么快,估计要加把劲了。