1,数据的表示
数值数据表示
数据的表示常有十进制、二进制、十六进制和八进制。
非数值数据表示
非数值数据包括文字、符号、图像、语言和逻辑信息等,也都是以0/1形式存在。
字符数据在机器内也被变换成二进制编码的形式存储,普遍采用的是ASCII码。
2,程序的编译和调试
gcc 编译器
gcc 是GNU 推出的多平台编译器,可将C、C++ 源程序编译连接成可执行文件,支持以下后缀:
- .c ——c语言源代码
- .h —— 程序所包含的头文件
- .i —— 已经预处理过的C 源代码文件
- .s—— 汇编语言源代码文件
- .o—— 编译后的目标文件
以test.c 的文件为例,程序编写完成后,就要开始编译了:
gcc test.c -o test //对程序进行编译的命令
gcc test.c -o test -Wall //该指令对程序编译后还可以报错
./test //该命令使程序执行
程序调试
利用 _ FILE _ (文件名), _ LINE_(当前行号), _ FUNCTION _(函数名) 实现代码的跟踪调试:
printf("%s,%s,%d\n",_FILE_,_FUNCTION_,_LINE_);
3,数据类型
1,数据类型分类
2,基本数据类型
这里仅提及以下两种数据类型:
- bool 类型,运用bool 类型时需要引入头文件“stdbool.h”
- char 类型
类型名称 | 长度(字节) | 值域 |
---|---|---|
char | 1 | -128~127 |
signed char | 1 | -128~127 |
unsigned char | 1 | 0~255 |
4,常量
常量是指在程序运行期间其数值不发生变化的数据,常用的有整数常量,浮点数常量,字符常量,字符串常量。
下面重点讨论一下字符常量:
字符常量是指一个单一字符,其表示形式是由两个单引号包括的一个字符。可以把字符常量看做一个字节的正整数。
例如:
char a,b,u,v;
a='F'; //将70送给a
b='A'+2; //b存放的是'C'字符
u=' '+'B'; //u存放的是'b'字符
v='b'-32; //v存放的是'B'字符
它们分别相当于下列运算:
a=70;
b=65+2;
u=32+66;
v=97-32;
编程练习:一个水分子的质量为3.0*10-23 g,一夸脱水大约有950g ,编写一个程序,要求输入水的夸脱数,然后显示这么多水中包含多少水分子。
程序截图:
5,变量
-
变量基础
变量名由字母、数字、下划线组成,不能以数字开头,不能和C 的关键字重名
在程序运行时,变量占据存储空间的大小由其数据类型决定。
变量在内存空间中的首地址,称为变量的地址。 -
变量的存储类型
1,auto
auto 说明的变量只能在某个程序范围内使用,通常在函数体内或函数中的复合语句里(默认是随机值)
2,register
register 称为寄存器型,register 变量是想将变量放入CPU 的寄存器中,这样可以加快程序的运行速度。如申请不到就使用一般内存,同auto 。
不能用“&” 来获取register 变量的地址。
3,static
static 变量称为静态存储类型的变量,既可以在函数体内,也可在函数体外说明。(默认值为0 )
局部变量使用static 修饰,有以下特点:
一,在内存中以固定地址存放的,而不是以堆栈方式存放;二,只要程序没结束,就不会随着说明它的程序段的结束而消失,它下去再调用该函数,该存储类型变量不再重新说明,而且还保留上次调用存入的值。
4,extern
当变量在一个文件中的函数体外说明,所有其他文件中的函数或程序段都可以引用这个变量。
extern 称为外部参照引用型,使用extern 说明的变量是引用在其他文件中函数体外部说明的变量。
static 修饰的全部变量,其他文件无法使用。