1. 大纲
2. getchar()
getchar()
函数读取下一个输入字符,因此程序会等待用户输入。- 用于在程序输出屏幕一闪而过的情况下。
- 使用几个getchar()根据实际程序来进行调整。
3. 程序中新元素
3.1 两种变量声明
- 整型(int)
- 浮点数类型 (float)
printf("%.2f",num);
.2用于精度控制输出,指定输出的浮点数只显示小数点后两位。
3.2 scanf()函数和printf()函数
scanf("%f",&a);
scanf()
函数读取用户从键盘输入的浮点数,&a告诉scanf()函数把输入的值赋给名为a的变量。
scanf()函数使用&符号表明找到a变量的地址。
printf("%d",a);
printf()
函数读取程序中的数据,并把数据显示在屏幕上。
4. 变量与常量数据
有些数据类型在程序使用之前已经预先设定好了,在整个程序的运行过程中没有变化,这些称为常量(constant)。其他数据类型在程序运行期间可能会改变或被赋值,这些称为变量(variable)。
5. 数据:数据类型关键字
在c语言中,用int
关键字来表示基本的整数类型,long
、short
、unsigned
和c90新增的signed用于提供基本整数类型的变式,比如insigned short int
和long long int
。
char
关键字用于指定字母和其他字符(如#、¥、%、*)。另外cha也可以表示较小的整数。
float
、double
、long double
表示带小数点的数。
_Bool
类型表示布尔值(true或false)
Complex
和Imaginary
分别表示复数和虚数。
通过这些关键字创建的类型,按计算机的存储方式可分为两大基本类型:整数类型和浮点数类型。
5.1 位、字节和字
位、字节和字是描述计算机数据单元或存储单元的术语。这里主要指存储单元。
- 最小的存储单元是
位(bit)
,可以存储0或1。位是计算机内存的基本构建块。 - 字节
(byte)
是常用的计算机存储单位,对于几乎所有的机器,1字节均为8位。 字(word)
是设计计算机时给定的自然存储单位。对于8位的微型计算机,1个字长只有8位,计算机字长越大,其数据转移越快,允许的内存访问也更多。
5.2 整数和浮点数
对于我们而言,整数和浮点数的区别是它们的书写方式不同。对计算机而言,他们的区别是存储方式不用。
-
整数
整数是没有小数部分的数。计算机以二进制数字存储整数。
整数7的二进制数是111,在8位字节中存储该数字,要把前五位都设置成0,后三位设置成1。 -
浮点数
一个值后面加上小数点就成为一个浮点数。
计算机把浮点数分成小数部分和指数部分来表示,而且分开存储这两部分,7.00和7在数值上相同,但是存储方式不同。
- 整数和浮点数的差别
- 整数没有小数部分,浮点数有小数部分。
- 浮点数可以表示的范围比整数大。
- 对于一些算数运算(两个很大的数相加减),浮点数损失的精度更多。
- 在任何区间内(如1.0-2.0之间),都存在无穷多个实数,所以计算机的浮点数不能表示区间内所有的值。浮点数通常只是实际值的近似值。
- 过去,浮点数运算比整数运算慢。不过,现在有许多cpu包含浮点数处理器,缩小了舒服上的差距。
6. C语言的基本数据类型
6.1 int 类型
C语言中的整数类型可表示不同的取值范围和正负值。一般情况使用int类型即可,但是为满足特定任务和机器的要求,还可以选择其他类型。
int类型是有符号整型,即int类型的值必须是整数,可以是正整数、负整数或零。其取值范围依计算机系统而异。一般而言,存储一个int要占用一个机器字长。因此,早期的16位IBM PC兼容机使用16位来存储一个int值,其取值范围(即int值的取值范围)是-32768~32767。
ISO C规定in