第二讲 基本数据类型一,C语言的保留字和标识符二、基本数据类型
1、常量和变量的概念
2、整型常量和整型变量
3、实型常量和实型变量
4、字符型常量和字符型变量
5、变量的初始化三,C语言开发运行环境一,C语言的保留字和标识符
保留字,C语言规定的具有特定意义的字符串,
也称关键字。
C语言的保留字(关键字)共有 32个。
关键字类型:
类型说明,int long float …
语句定义,if…else while for …
存储类,auto static …
标识符,用来标识变量名、符号常量名、数组名、类型名、函数名等的有效字符序列。
C语言对标识符的规定:
( 1)标识符的第一个字符必须是字符或是下划线( _)
( 2)标识符的第一个字符后的字符序列应该是字母、下划线或数字组成的序列。
( 3)标识符的长度与系统有关,一般为 8个字符长度,也就是前 8个字符有效。
例,如果系统规定标识符长度为 8,那么 x1234567A
和 x1234567B会被视为同一标识符。
标识符中应注意的问题:
标识符命名时应有意义,尽量做到见名知义。
如 longth用来表示长度,time用来表示时间,PI用来表示圆周率。
标识符严格区分大、小写。
如 ABC,aBC,abc分别代表 3种不同的标识符
标识符不能与 C语言的保留字、系统标准库函数同名。
为合法标识符
yes?
123
go to
a_80%
program to_ _to file_2 ab1_c3
为非法法标识符
(含有不合法字符?? )
(出现非法字符?%? )
(标识符中不允许有空格 )
(第一个字符不能为数字 )
整型字符型枚举类型实型(浮点型)
单精度型双精度型指针类型空类型基本类型构造类型数组类型结构体类型共用体类型数据类型二、基本数据类型
1、常量和变量的概念常量,在程序执行的整个过程中,其值不能改变的量。
直接以值的形式出现的常量:如 100,0.5
符号常量:用标识符表示的常量如,定义 #define PI 3.14159
标识符 PI代替了 3.14159,也就是符号常量常量根据不同书写形式,分为不同类型的常量,
如整型常量,实型常量,字符型常量等等。
变量,在程序执行的过程中,其值可以改变的量。
如 y=2*x;
其中 x和 y都是变量,y随着 x的值不同而不同
C语言规定,变量必须先定义,后使用 。
变量的定义语句:
变量类型说明符 变量名 1[,变量名 2[,···]];
例,int y,x 将 x,y定义为整型变量
变量的特征:
1)变量名:为一个标识符,通常用小写字母表示;
2)变量类型:由变量类型说明符说明;
整型变量,实行变量,字符型变量等等
3)变量值:通过初始化、赋值获得的。
如 C语言中的赋值语句:
y = 0; x = 10;
将 0和 10分别赋给了整型变量 y和 x
语句,y=2*x;
将 y的值由原来的 0变成了 20
2、整型常量和整型变量
I,整型常量按进位计数制,分为
十进制整型数,能出现数字 0~9,可带正负号如,0,1,99,-2
八进制整型数,以数字 0开头的数字串,能出现数字 0~7
如,011(十进制 9),0111(十进制 73)
十六进制整型数,以 0x开头的,能出现数字 0~9,字母 a~f或 A~F
如,0x11(十进制 17),0xa5(十进制 165)
II.整型常量按照在内存中所占字节数,分为
基本整型,2字节
短整型,2字节
长整型,4字节,用后缀 L/l表示
无符号整型数,2字节,用后缀 U/u表示无符号整型数
无符号长整型数,4字节,用后缀
LU/lu表示无符号长整型数
123,0123,0x78,0xabc0,
012L,0x12U
整型常量举例:
457893
0387LU
3a9L
以上为合法的整型常量以上为非法的整型常量
(超出短整型表示范围)
(八进制数出现数字? 8”)
(? a”只能出现在十六进制中)
整型变量,
变量类型名 变量类型 所占字节数 数的范围基本整型 int 2 -32768~ 32767
短整型 short int( short) 2 -32768~ 32767
长整型 long int ( long) 4 -2147483648~ 2147483647
无符号基本型 unsigned int 2 0~ 65535
无符号短整型 unsigned short int 2 0~ 65535
无符号长整型 unsigned long int 4 0~ 4294967295
整型变量举例:
main( )
{
int i,j; /*定义整型变量 i,j*/
i=1; /*分别给整型变量 i,j赋值 */
j=2;
printf(“i=%d,j=%d”,i,j);
/*按十进制格式输出整型变量 i,j的值 */
}
例:将下列给定整常数分别按十进制、八进制、十六进制的形式输出。
main ( )
{ int a=100,b=077,c=0x678;
printf("DEC=%d,OCT=%o,HEX=%x\n",a,a,a);
printf("DEC=%d,OCT=%o,HEX=%x\n",b,b,b);
printf("DEC=%d,OCT=%o,HEX=%x\n",c,c,c);
}
程序运行结果:
DEC=100,OCT=144,HEX=64
DEC=63,OCT=77,HEX=3f
DEC=1656,OCT=3170,HEX=678
3、实型常量和实型变量
以十进制数形式表示:由数字与小数点组成。
如 1.23,-123.,0.0123,.0,0.
以指数形式表示,其格式:
± m.nE|e± s
表示 ± m.n×
I,实型常量
s?10
E-5,.1234e1.2,6.5E
为合法的实型常量为非法的实型常量如,1E-5,.1234e12,2.e0,6.5E-15
II,实型变量变量类型名 变量类型 所占字节数 数的范围 有效数字单精度实型 float 4 10-37~ 10+38 7
双精度实型 double 8 10-307~ 10+308 16
实型变量举例:
main( )
{ float a,b; /*定义单精度浮点型变量 a,b*/
double c; /*定义双精度浮点型变量 c*/
a=123.45; /*分别给实型变量 a,b,c赋值 */
b=32.56;
c=123.45;
printf(“a=%f b=%f c=%f”,a,b,c); /*输出 a,b,c的值 */
}
程序运行结果,
a=123.449997 b=32.560001 c=123.450000
4、字符型常量和字符型变量
字符常量,是用单引号括起来的一个字符。
如,’ a’,’ 9’,’ ’
a”,’ 99’
是合法字符常量是非法法字符常量
转义字符,以,\”开头的字符序列,在程序中有特定的含义。
如,转义字符 ’ \n’表示回车换行,
转义字符 ’ \t’表示在横向跳到下一个 Tab
位置转义字符 ’ \“’表示输出一个双引号等 。
转义字符 功 能
\n 回车换行符,光标移到下一行行首
\r 回车不换行,光标移动到本行行首
\t 横向跳格 (8位为一格,光标跳到下一格起始位置,如第 9或 17位等 )
\b 退一格,光标往左移动一格
\f 走纸换页
\\ 用于输出反斜杠字符,\”
\? 用于输出单引号字符“’”
\” 用于输出双引号字符“””
\ddd 三位八进制数 ddd对应的 ASCII码字符
\xhh 两位十六进制数 hh对应的 ASCII码字符
字符变量:用来存放字符常量的变量,其类型说明符为 char。
存储特点:
将一个字符常量存放在一个字符变量中,实际上是将该字符常量的 ASCII代码值放在存储单元中,其存储形式与整数的存储形式相同。
字符数据与整型数据可相互赋值,直接运算 。
例如,char c1,c2;
c2=’a’;
定义了字符型变量 c1,c2,把 c2赋值为 ‘ a’
例 将字符‘ A? 用 4种方法赋值给字符变量。
#include <stdio.h>
main()
{ char c1,c2,c3,c4;
c1=?A?; /*直接赋值 */
c2=65; /*用 ASCII码值赋值 */
c3=?\101?; /*用八进制的 ASCII码值赋值 */
c4=?\x41?; /*用十六进制的 ASCII码值赋值 */
printf("c1=%c,c2=%c,c3=%c,c4=%c\n",c1,c2,c3,c4);
printf("c1=%d,c2=%d,c3=%d,c4=%d\n",c1,c2,c3,c4);
}
5、变量的初始化
格式,
类型说明符 变量 1=常数 1[,变量 2=常数 2[,···]];
例,
int a=0;
char c1=’ ’,c2=’*’;
float f1=1.0,f2=5.78e-6;
变量的初始化是指在定义变量时给变量赋值,这个值称为变量的初值。
三,C语言开发运行环境
C程序编译运行过程,
进入 BC编译环境创建新文件,File(New)
编辑文件存储文件,File(Save\Save as)
编辑完毕编译文件,Compile(Compile)
编译成功,生成目标代码,obj文件出错修改连接文件,Compile(Link)
运行文件,Run(Run)
连接生成执行文件,exe
运行结果
1)进入 BC子目录:
在 DOS提示符下键入:
CD C:\BC31?
CD C:\BIN?
2)启动 BC:
在 BC子目录下键入:
C:\BC31>BIN>BC?
例 程序? 在屏幕显示 Hello world!”的编译运行实例
从快捷方式进入启动 BC( Borland C):
从 DOS进入:
在桌面上双击:
,MS快捷方式
BC31” 图标单击“开始 \程序 \MS-DOS方式”
进入 BC运行环境,
创建新文件:
BC编辑环境:
编辑程序 hello world:
编辑完毕后,存储文件:
编辑文件名:
对文件进行编译 compile,生成目标代码,.OBJ文件,
编译 compile成功(无错误):
编译之后,对文件进行链接 link:
链接 link生成执行文件,EXE文件,
hello,EXE文件生成后,进行文件的运行 run:
hello,EXE的运行结果,
BC编译运行环境的退出 quit:
BC编译出错情况( printf语句后无? ;? ):
出错提示:
1、常量和变量的概念
2、整型常量和整型变量
3、实型常量和实型变量
4、字符型常量和字符型变量
5、变量的初始化三,C语言开发运行环境一,C语言的保留字和标识符
保留字,C语言规定的具有特定意义的字符串,
也称关键字。
C语言的保留字(关键字)共有 32个。
关键字类型:
类型说明,int long float …
语句定义,if…else while for …
存储类,auto static …
标识符,用来标识变量名、符号常量名、数组名、类型名、函数名等的有效字符序列。
C语言对标识符的规定:
( 1)标识符的第一个字符必须是字符或是下划线( _)
( 2)标识符的第一个字符后的字符序列应该是字母、下划线或数字组成的序列。
( 3)标识符的长度与系统有关,一般为 8个字符长度,也就是前 8个字符有效。
例,如果系统规定标识符长度为 8,那么 x1234567A
和 x1234567B会被视为同一标识符。
标识符中应注意的问题:
标识符命名时应有意义,尽量做到见名知义。
如 longth用来表示长度,time用来表示时间,PI用来表示圆周率。
标识符严格区分大、小写。
如 ABC,aBC,abc分别代表 3种不同的标识符
标识符不能与 C语言的保留字、系统标准库函数同名。
为合法标识符
yes?
123
go to
a_80%
program to_ _to file_2 ab1_c3
为非法法标识符
(含有不合法字符?? )
(出现非法字符?%? )
(标识符中不允许有空格 )
(第一个字符不能为数字 )
整型字符型枚举类型实型(浮点型)
单精度型双精度型指针类型空类型基本类型构造类型数组类型结构体类型共用体类型数据类型二、基本数据类型
1、常量和变量的概念常量,在程序执行的整个过程中,其值不能改变的量。
直接以值的形式出现的常量:如 100,0.5
符号常量:用标识符表示的常量如,定义 #define PI 3.14159
标识符 PI代替了 3.14159,也就是符号常量常量根据不同书写形式,分为不同类型的常量,
如整型常量,实型常量,字符型常量等等。
变量,在程序执行的过程中,其值可以改变的量。
如 y=2*x;
其中 x和 y都是变量,y随着 x的值不同而不同
C语言规定,变量必须先定义,后使用 。
变量的定义语句:
变量类型说明符 变量名 1[,变量名 2[,···]];
例,int y,x 将 x,y定义为整型变量
变量的特征:
1)变量名:为一个标识符,通常用小写字母表示;
2)变量类型:由变量类型说明符说明;
整型变量,实行变量,字符型变量等等
3)变量值:通过初始化、赋值获得的。
如 C语言中的赋值语句:
y = 0; x = 10;
将 0和 10分别赋给了整型变量 y和 x
语句,y=2*x;
将 y的值由原来的 0变成了 20
2、整型常量和整型变量
I,整型常量按进位计数制,分为
十进制整型数,能出现数字 0~9,可带正负号如,0,1,99,-2
八进制整型数,以数字 0开头的数字串,能出现数字 0~7
如,011(十进制 9),0111(十进制 73)
十六进制整型数,以 0x开头的,能出现数字 0~9,字母 a~f或 A~F
如,0x11(十进制 17),0xa5(十进制 165)
II.整型常量按照在内存中所占字节数,分为
基本整型,2字节
短整型,2字节
长整型,4字节,用后缀 L/l表示
无符号整型数,2字节,用后缀 U/u表示无符号整型数
无符号长整型数,4字节,用后缀
LU/lu表示无符号长整型数
123,0123,0x78,0xabc0,
012L,0x12U
整型常量举例:
457893
0387LU
3a9L
以上为合法的整型常量以上为非法的整型常量
(超出短整型表示范围)
(八进制数出现数字? 8”)
(? a”只能出现在十六进制中)
整型变量,
变量类型名 变量类型 所占字节数 数的范围基本整型 int 2 -32768~ 32767
短整型 short int( short) 2 -32768~ 32767
长整型 long int ( long) 4 -2147483648~ 2147483647
无符号基本型 unsigned int 2 0~ 65535
无符号短整型 unsigned short int 2 0~ 65535
无符号长整型 unsigned long int 4 0~ 4294967295
整型变量举例:
main( )
{
int i,j; /*定义整型变量 i,j*/
i=1; /*分别给整型变量 i,j赋值 */
j=2;
printf(“i=%d,j=%d”,i,j);
/*按十进制格式输出整型变量 i,j的值 */
}
例:将下列给定整常数分别按十进制、八进制、十六进制的形式输出。
main ( )
{ int a=100,b=077,c=0x678;
printf("DEC=%d,OCT=%o,HEX=%x\n",a,a,a);
printf("DEC=%d,OCT=%o,HEX=%x\n",b,b,b);
printf("DEC=%d,OCT=%o,HEX=%x\n",c,c,c);
}
程序运行结果:
DEC=100,OCT=144,HEX=64
DEC=63,OCT=77,HEX=3f
DEC=1656,OCT=3170,HEX=678
3、实型常量和实型变量
以十进制数形式表示:由数字与小数点组成。
如 1.23,-123.,0.0123,.0,0.
以指数形式表示,其格式:
± m.nE|e± s
表示 ± m.n×
I,实型常量
s?10
E-5,.1234e1.2,6.5E
为合法的实型常量为非法的实型常量如,1E-5,.1234e12,2.e0,6.5E-15
II,实型变量变量类型名 变量类型 所占字节数 数的范围 有效数字单精度实型 float 4 10-37~ 10+38 7
双精度实型 double 8 10-307~ 10+308 16
实型变量举例:
main( )
{ float a,b; /*定义单精度浮点型变量 a,b*/
double c; /*定义双精度浮点型变量 c*/
a=123.45; /*分别给实型变量 a,b,c赋值 */
b=32.56;
c=123.45;
printf(“a=%f b=%f c=%f”,a,b,c); /*输出 a,b,c的值 */
}
程序运行结果,
a=123.449997 b=32.560001 c=123.450000
4、字符型常量和字符型变量
字符常量,是用单引号括起来的一个字符。
如,’ a’,’ 9’,’ ’
a”,’ 99’
是合法字符常量是非法法字符常量
转义字符,以,\”开头的字符序列,在程序中有特定的含义。
如,转义字符 ’ \n’表示回车换行,
转义字符 ’ \t’表示在横向跳到下一个 Tab
位置转义字符 ’ \“’表示输出一个双引号等 。
转义字符 功 能
\n 回车换行符,光标移到下一行行首
\r 回车不换行,光标移动到本行行首
\t 横向跳格 (8位为一格,光标跳到下一格起始位置,如第 9或 17位等 )
\b 退一格,光标往左移动一格
\f 走纸换页
\\ 用于输出反斜杠字符,\”
\? 用于输出单引号字符“’”
\” 用于输出双引号字符“””
\ddd 三位八进制数 ddd对应的 ASCII码字符
\xhh 两位十六进制数 hh对应的 ASCII码字符
字符变量:用来存放字符常量的变量,其类型说明符为 char。
存储特点:
将一个字符常量存放在一个字符变量中,实际上是将该字符常量的 ASCII代码值放在存储单元中,其存储形式与整数的存储形式相同。
字符数据与整型数据可相互赋值,直接运算 。
例如,char c1,c2;
c2=’a’;
定义了字符型变量 c1,c2,把 c2赋值为 ‘ a’
例 将字符‘ A? 用 4种方法赋值给字符变量。
#include <stdio.h>
main()
{ char c1,c2,c3,c4;
c1=?A?; /*直接赋值 */
c2=65; /*用 ASCII码值赋值 */
c3=?\101?; /*用八进制的 ASCII码值赋值 */
c4=?\x41?; /*用十六进制的 ASCII码值赋值 */
printf("c1=%c,c2=%c,c3=%c,c4=%c\n",c1,c2,c3,c4);
printf("c1=%d,c2=%d,c3=%d,c4=%d\n",c1,c2,c3,c4);
}
5、变量的初始化
格式,
类型说明符 变量 1=常数 1[,变量 2=常数 2[,···]];
例,
int a=0;
char c1=’ ’,c2=’*’;
float f1=1.0,f2=5.78e-6;
变量的初始化是指在定义变量时给变量赋值,这个值称为变量的初值。
三,C语言开发运行环境
C程序编译运行过程,
进入 BC编译环境创建新文件,File(New)
编辑文件存储文件,File(Save\Save as)
编辑完毕编译文件,Compile(Compile)
编译成功,生成目标代码,obj文件出错修改连接文件,Compile(Link)
运行文件,Run(Run)
连接生成执行文件,exe
运行结果
1)进入 BC子目录:
在 DOS提示符下键入:
CD C:\BC31?
CD C:\BIN?
2)启动 BC:
在 BC子目录下键入:
C:\BC31>BIN>BC?
例 程序? 在屏幕显示 Hello world!”的编译运行实例
从快捷方式进入启动 BC( Borland C):
从 DOS进入:
在桌面上双击:
,MS快捷方式
BC31” 图标单击“开始 \程序 \MS-DOS方式”
进入 BC运行环境,
创建新文件:
BC编辑环境:
编辑程序 hello world:
编辑完毕后,存储文件:
编辑文件名:
对文件进行编译 compile,生成目标代码,.OBJ文件,
编译 compile成功(无错误):
编译之后,对文件进行链接 link:
链接 link生成执行文件,EXE文件,
hello,EXE文件生成后,进行文件的运行 run:
hello,EXE的运行结果,
BC编译运行环境的退出 quit:
BC编译出错情况( printf语句后无? ;? ):
出错提示: