第2讲 常量变量和数据类型

更新时间:2023-08-31 23:55:01 阅读量: 教育文库 文档下载

说明:文章内容仅供预览,部分内容可能不全。下载后的文档,内容与下面显示的完全一致。下载之前请确认下面内容是否您想要的,是否完整无缺。

第2讲 常量变量和数据类型2.1 词法元素 2.2 关键字 2.3 标识符

2.4 数据类型2.5 常量 2.6 变量

2.7 标准输入输出函数

例题1: 计算圆的面积程序代码如下: /* ex2-1.c 输入半径计算圆的面积 */ #include <stdio.h> main() { int r; double s; scanf("%d", &r); s = 3.14 * r * r; printf("S = %f\n", s); } 程序运行结果如下: 4 S = 50.240000

词法元素 程序代码中的标记(token)是 翻译阶段中语言的最小词法 元素。 标记的种类有: 关键字 标识符 常量 字符串常量 运算符 分隔符(标点符号)

关键字是被C语言保留使用的单词,在代码中具有特定的含义,必须使用 小写字母表示,不能用作其他用途; ANSI 标准规定C语言共有32个关键字,不同的C编译器会做适当增减; 关键字分为四大类: (1)数据类型关键字12个; (2)控制语句关键字12个; (3)存储类型关键字4个 ; (4)其他关键字4个。

标识符主要用来命名变量、符号常量、函数、数组、类型等对象; 标识符由字母、数字和下划线组成,且第一个字符必须是字母或下划线; ANSI 标准规定C语言标识符的有效长度不大于32个字符; C语言区分字母的大小写,例如Sum和sum是两个不同的标识符; 标识符不能与关键字同名。

数据类型是数据对象的一种属性; 数据类型定义了数据对象的存储表示,规范了数据对象的取值范围,定义 了数据对象能够进行的操作; C语言的数据类型非常丰富; 不同程序设计语言中的数据类型或多或少有所不同。

以上数据类型的字节长度和值的范围采用VC6.0的标准

例题2: 计算半径为10的圆的周长和面积程序代码如下: /* ex2-2.c 计算圆的周长和面积 */ #include <stdio.h> #define PI 3.14 main() { const int R = 10; double l, s; l = 2 * PI * R; s = PI * R * R; printf("L=%f,S=%f\n", l, s); } 程序运行结果如下: L=62.800000,S=314.000000

2.5.1 常量的概念

在程序运行过程中,其值不 可以被改变的量称为常量 (Constant)。在赋值语句: l = 2 * PI * R; 中包含了三种形式的常量: 直接常量——2 符号常量——PI 常型变量——R

2.5.2 常量的类型 直接常量 直接常量也称字面常量(literal constant),在代码中直接以自身 的存在形式体现值和数据类型,其表现形式与日常书写习惯类似。 例如: 10,-123 为整型常量 -1.5,3.14, 1.7E-3, -2.5E8 为实型常量

'A', 'b', ,'*', '%' 为字符型常量 "CHINA", "Qingdao University" 为字符串型常量

2.5.2 常量的类型 符号常量 在C语言中,可以定义一个标识符作为直接常量的名字,然后在代码 中用该标识符体现常量的值和数据类型,这个标识符被称为符号常量。由 于

符号常量需用#define定义,因此也被称为宏常量。

编译时,程序代码中的所有符号常量会被预编译器依次替换为所对应 的直接常量。从底层的角度来看,符号常量与直接常量完全相同;但从程 序员的角度来看,符号常量的使用增强了代码的可维护性及可读性。

2.5.2 常量的类型 常型变量 在C语言中,也可以使用const关键字将一个拥有初值的变量修饰为 常量,通常将这种形式的常量称为常型变量,简称常变量。

const关键字是为提高C程序的健壮性而存在的。使用const定义的常 型变量,从底层的角度来看,更像是变量;但从程序员的角度来看,由于 通常无法修改常型变量的值,因此又可将其看作常量。

2.5.3 直接常量的表示及其数据类型 整型常量 整型常量的表示遵循以下的语法结构图:

其中: 八进制整数以0开头,十六进制整数以0x或0X开头,以区别十进制 整数。无后缀表示该常量的数据类型为整型(int) ; 后缀为l或L表示该常 量的数据类型为长整型(long) ; 后缀为u或U表示该常量的数据类型为 无符号整型(unsigned) ; 后缀为ul或UL表示该常量的数据类型为无符 号长整型(unsigned long) 。 例如: 125,-300L ,0125U ,0XFUL 都是合法的整型常量。

2.5.3 直接常量的表示及其数据类型 实型常量 实型常量的表示遵循以下的语法结构图:

其中: 实型常量包含一个小数点或指数部分。整数部分和小数部分用十进制 表示。无后缀表示该常量的数据类型为双精度实型(double) ; 后缀为f 或F表示该常量的数据类型为单精度实型(float) ; 后缀为l或L表示该常量 的数据类型为长双精度实型(long double) 。 例如: 125.,.125,3.14E-3 ,3.75F ,4.8L 都是合法的实型常量。

2.5.3 直接常量的表示及其数据类型 字符型常量 用一对单引号括起来的单个字符称为字符型常量。例如: 'A' ,'b' , '*' ,'+' 都是合法的字符型常量。 字符型常量的值就是该字符的ASCII值,因此是一个整数,例如'A'的 值就是65。虽然在程序中,字符型常量主要用来与其他字符进行比较运 算,但也可以像其他整数一样参与数值运算。 在C语言中,一些特殊字符需用转义字符序列进行表示。转移字符序 列以\开头,虽然看起来像两个或多个字符,但其实表示一个字符。C语言 中全部的转移字符序列如下:

2.5.3 直接常量的表示及其数据类型 字符串型常量 字符串型常量也称字符串字面值,简称字符串,是用双引号括起来的 0个或多个字符组成的字符序列。例如: "I am a string" , "CHINA", "" , " "都是合法的字符串型常量。 C语言规定,字符串在内存中按字节连续存放,最后一个字节中存储 的是ASCII码值为0的字

符,该字符作为字符串的结束标志。例如,字符 串"CHINA"的存储格式如下所示:

2.6.1 变量的概念 程序运行中需要有一种能够暂时存储数据的方法,人们将数据及其存 储空间抽象为变量。相对于常量而言,其值在程序运行过程中可以被改变。 变量支持两个基本操作,一是向变量存入数据,即“赋值”;二是取得变 量的当前值,即“取值”。 main() { int a; a = 10; }

2.6.2 变量的属性 变量有七个基本属性: ①名字:用以标识变量,变量名的命名规则同标识符; ②地址:变量实质上是一个符号地址,用以指示存储空间的位置; ③数据类型:数据类型用以指示存储空间的大小以及如何解释其中的数 据。变量所拥有的数据类型,要通过变量声明语句进行定义;

④值:在使用变量进行计算或输出之前,必须确保其有确定的值。程序运行时,某些变量会被初始化为0,但大多数变量的初始值无法预计,可 采用赋值语句对变量赋一个初始值,也可以声明变量的同时进行初始化; ⑤作用域:变量起作用的程序范围; ⑥存储时期:变量的存在时限。 ⑦链接:确定组成程序的多个文件可以共享此变量的范围。

2.6.3 变量的声明和初始化 变量声明的语法规则如右图所示: 1char a; unsigned char b; short c; unsigned short d; int e; unsigned int f; long g; unsigned long h; float i; double j; long double k;

2 char a = 65;unsigned char b = 97; short c = 100; unsigned short d = 65535; int e = 200; unsigned int f = 2147483648; long g = 300; unsigned long h = 2147483649; float i = 3.14F; double j = 3.14E100; long double k=3.14E200;

3

double x, y, z; char a = 'A', b= 66, c='\0'; int i, j = 1, k;

C语言中输入输出功能的实现是通过调用库函数中的标准输入输出函 数来实现的。

2.7.1 字符的输入和输出 使用getchar和putchar函数可以实现字符的输入和输出。例题3: 字符的输入和输出 程序代码如下: #include <stdio.h> void main() { char ch1, ch2; ch1=getchar(); ch2=getchar(); putchar(ch1); putchar(ch2); } 程序运行结果如下: abcdefg <Enter> abPress any key to continue a <Enter> a Press any key to continue 例题4: 字符的输入和输出(修改版) 程序代码如下: #include <stdio.h> void main() { char ch1, ch2; ch1=getchar(); ch2=getchar(); printf("ch1=%c,%d\n",ch1,ch1); printf("ch2=%c,%d\n",ch2,ch2); } 程序运行结果如下: a <Enter> ch1=a,97 ch2= ,10 Press any key to continue

本文来源:https://www.bwwdw.com/article/ceoi.html

Top