数据的类型、数据的输入输出(1)
数据类型,常量,变量(整形,浮点,字符)
简单介绍
每个C程序有且只能有一个主函数main
,程序从main
函数开始执行。花括号{}是函数 开始和结束的标志,不可省略。每个C语句均以半角分号结束。首先编写源程序main.c
。编写完毕后,通过编译器进行编译,main.c
经过编译后,得到可执行文件(Windows下是exe,Mac和Linux下是不带后缀的,统称为可执行文件),可执行文件中均是0、1类型的机器码,即CPU能够识别的微指令。
断点和调试
调试就是程序每一步的运行,后发生计算,计算会改变变量的值,我们通过变量监视窗口,如果发现某个变量值不符合我们预期时,就代表我们找到了bug。
1 数据类型
数据类型有基本类型,构造类型,指针类型,空类型void
。
2 常量
常量是指在程序运行过程中,其值不发生变化的量。常量又可分为整形,实型(也称浮点型)、字符型和字符串型,字符型要用单引号,一个字符,字符串型为双引号,没有字符限制。
3 变量
变量代表内存中具有特定属性的一个存储单元,它用来存放数据,即变量的值。这些值在程序的执行过程中时可以改变的。
变量名实际上以一个名字代表一个对应的存储单元地址。编译、链接程序时,由编译系统为每个变量名分配对应的内存地址(就是空间)。从变量中取值实际上是通过变量名找到内存中存储单元的地址,并从该存储单元中读取数据。
变量名的命名规则:C语言规定标识符只能由字母、数字和下划线三种字符组成,并且第一个字符必须为字母或下划线。
编译系统认为大写字母和小写字母是不同的字符,因此C语言要求对所有用到的变量做强制定义,即“先定义,后使用”。同时在选择变量名和其他标识符时,应尽量做到见名知义。注意,变量名不能与关键词同名。
4 整型数据
4.1符号常量
定义一个整型变量时要使用关键字int
。我们来看下面的例子。
#include <stdio.h>
//符号常量
#define PI 3+2
int main() {
int i=PI*2;//i就是一个整型变量
printf("i=%d\n",i);//printf是用来输出的
printf("i size=%d\n",sizeof(i));//sizeof可以用来计算某个变量的空间大小
return 0;
}
最终输出结果是7,原因是符号常量PI是直接替换的结果。
4.2 整型变量
掌握int i
足以应对考研初试。变量i
是四个字节。
5 浮点型数据
5.1 浮点型常量
表示浮点型常量的形式有小数形式和指数形式两种,在指数形式中e代表10的幂次,幂次可正可负。3e-3
=0003。-.1e-3
(0可以省略)注意:字母e(或E)之前必须有数字,且e后面的指数必须为整数。
5.2 浮点型变量
通过float f
来定义浮点变量,f
占用4个字节的空间。
#include <stdio.h>
int main() {
float f=3e-3;
printf("f=%f\n",f);
return 0;
}
6 字符型数据
6.1 字符型常量
用单引号括起来的一个字符是字符型常量,且只能包含一个字符。以""开头的特殊字符称为转义字符。
转义字符 | 作用 |
---|---|
\n | 换行 |
\b | 退格 |
\\ | 反斜杠 |
6.2 字符数据在内存中的存储形式及其使用方法
字符型变量使用关键字char
进行定义,一个字符型变量占用一字节大小空间。将一个字符常量放到一个字符变量中,实际上并不是把该字符本身放到内存单元中去,而是将该字符的相应的ASCII码放到存储单元中。既然在内存中,字符数据以ASCII码存储,它的存储形式就与整数的存储形式类似。C语言使字符型数据和整型数据之间可以通用。一个字符数据既可以以字符形式输出,也可以以整数形式输出。以字符形式输出时,需要先将存储单元中的ASCII码转换成相应字符,然后输出。以整数形式输出时,直接将ASCII码作为整数输出。也可以对字符数据进行算术运算,此时要相当于对它们的ASCII码进行算术运算。值的注意的是,字符数据只占一个字节,它只能存放0~255之间的整数。
#include <stdio.h>
//大写变小写
int main() {
char c='A';
printf("%c\n",c+32);//以字符形式输出
printf("%d\n",c);//以数值形式输出
return 0;
}
7 字符串型常量
C语言里没有提供字符串变量。不可以将字符串型常量赋值给字符型变量。C语言规定在每个字符串型常量的结尾加一个字符串结束标志,以便系统判断字符串是否结束。C语言规定以字符'\0'
作为字符串结束的标志。例如,字符串型常量"CHINA"
所占用的内存单元不是5个字节,而是6个。'a'
是字符型常量,"a"
是字符串型常量。