顺序程序设计举例
![](https://img-blog.csdnimg.cn/img_convert/122a88dbf8a6225ef97ed23b78993838.png)
数据的表现形式及其运算
变量和常量
常量
在程序运行过程中,其值不能被改变的量,称为常量。数值常量就是数学中的常数。
整型常量
整数,如1000、1234、0、-345等都是整型常量。
实型常量
十进制小数形式,由数字和小数点组成。如123.456、0.123、-12.32、0.0等。
指数形式。如12.34e3代表12.34*10**3,规定以字母e或E代表以10为底的指数,e或E之前必须有数字,且后面必须为整数。
字符常量
普通字符
用单撇号括起来的一个字符,如'a','b','C','3','?','#'。不能写成"ab"或"12"。单撇号只是界限符,字符常量只能是一个字符,不包括单撇号,'a'和'A'是不同的字符常量。字符常量存储在计算机存储单元中时,并不是存储字符本身,而是以其代码ASCII代码存储的。
转义字符
以字符“\”开头的字符序列。
在printf函数中的“\n”代表一个换行符,“\t”代表将输出的位置跳到下一个Tab(制表)位置,一个Tab位置为8列。
这是一种在屏幕上无法显示的“控制字符”,在程序中也无法用一个一般形式的字符来表示,只能采用这样的特殊形式来表示。
![](https://img-blog.csdnimg.cn/img_convert/cfdb7ce04abf6fb29323dce62a08e4c0.png)
转义字符将“\”后面的字符转换为另外的意义。
字符串常量
如“boy”,“123”等,用双撇号把若干字符括起来,字符串常量是双撇号中的全部字符,但不包括双撇号本身,单撇号内只能包含一个字符,双撇号内可以包含一个字符串。
符号常量
用#define指令,指定一个符号名称代表一个常量。
![](https://img-blog.csdnimg.cn/img_convert/6c27324c7d8076fb73c65ec724355411.png)
经过指定后,本文件中从此行开始所有的PI都代表3.1416,用一个符号名代表一个常量的,称为符号常量。
好处:
含义清楚
在需要改变程序中多处用到的同一个常量时,能做到一改全改。
符号常量不占用内存,只是一个临时符号,代表一个值,在预编译后这个符号就不存在了,不能对符号常量赋新值,为与变量相区别,常量习惯上用大写表示,PI等。
变量
先定义、后使用。
变量代表一个有名字的、具有特定属性的一个存储单元。在运行期间值可以改变。
在定义时指定该变量的名字和类型,一个变量应该有一个名字,以便引用。
![](https://img-blog.csdnimg.cn/img_convert/16aebbf26bf3b228b1029945d7ce2cd2.png)
常变量
在定义常变量时,前面添加关键字const,如
![](https://img-blog.csdnimg.cn/img_convert/3a5d7e2453b9f639711633d4f10ddca1.png)
定义d为一个整型变量,指定其值为9,在变量存在期间其值不能改变。
常变量是有名字的不变量,而常量是没有名字的不变量,有名字就便于在程序中被引用;
定义符号常量用#define指令,它是预编译指令,它只是用符号常量代表一个字符串,在预编译时仅进行字符替换,在预编译后,符号常量就不存在了,对符号常量的名字是不分配存储单元的。变量要占用存储单元,有变量值,只是该值不改变而已;常变量具有符号常量的优点,而且使用更方便。有了常变量以后,可以不必多用符号常量。
标识符
用来对变量、符号常量名、函数、数组、类型等命名的有效字符序列,统称为标识符。简单来说,标识符就是一个对象的名字。
数据类型
在定义变量时需要指定变量的类型,不同的类型分配不同的长度和存储形式。
![](https://img-blog.csdnimg.cn/img_convert/e68da899a71685a2781e3b1730d2d216.png)
![](https://img-blog.csdnimg.cn/img_convert/be46aca5211fd24446c72dc8aa122e47.png)
整型数据
整型数据的分类
在存放整数的存储单元中,最左面一位是用来表示符号的,如果该位为0,表示数值为正,如果该位为1,表示数值为负。
基本整型(int型)
编译系统分配给int型数据2个或4个字节,由具体的C编译系统自行决定;在存储单元中的存储方式:用整数的补码形式存放,一个整数的补码是此数的二进制形式,例如5的二进制形式是101;求负数的补码方法是:先将此数的绝对值写成二进制形式,然后对其所有二进制位按位取反,再加1。
其能容纳的数值范围为:-21474833648 ~ 2147483647 .
短整型(short int)
存储方式与int型相同,一个短整型变量的值的范围是: -32768 ~ 32767 .
长整型(long int)
类型名为long int 或 long。VS C++对一个long型数据分配4个字节(32位),因此long int型变量的值的范围是: -2147483648 ~ 2147483647 .
双长整型(long long int)
类型名为long long int 或 long long ,一般分配8个字节。sizeof是测量类型或变量长度的运算符。
整型变量的符号属性
变量值在存储单元中都是以补码形式存储的,存储单元中的第1个二进制位代表符号,整型变量的值的范围包括负数到正数。
为了充分利用变量的值的范围,可以将变量定义为“无符号”类型,在类型符号前面加上修饰符unsigned,表示指定该变量是“无符号整数”类型;如果加上修饰符signed,则是“有符号类型”。
有符号整型数据存储单元中最高位代表数值的符号(0为正,1为负)。如果指定unsigned(为无符号)型,存储单元中全部二进制位(b)都用作存放数值本身,而没有符号。无符号类型变量只能存放不带符号的整数,如123,3454等,而不能存放负数,无符号整型变量中可以存放的正数的范围比一般整型变量中正数的范围扩大一倍。
有符号基本整型 |
[signed] |
int |
||
无符号基本整型 |
unsigned |
int |
||
有符号短整型 |
[signed] |
short |
[int] |
|
无符号短整型 |
unsigned |
short |