《C语言程序设计2》由会员分享,可在线阅读,更多相关《C语言程序设计2(19页珍藏版)》请在金锄头文库上搜索。
1、C C语言程序设计语言程序设计第二章第二章 C C语言的数据类型、语言的数据类型、运算符与表达式运算符与表达式华东师范大学物理系3.1 C3.1 C语言的数据类型语言的数据类型n基本型整型、字符型、浮点型(单、双精度)、枚举型整型、字符型、浮点型(单、双精度)、枚举型n构造类型数组、结构体、共用体数组、结构体、共用体n指针类型n空类型3.2.1 3.2.1 常量与符号常量常量与符号常量n程序运行过程中,其值不能改变的量。1.常量可分为不同类型,如常量可分为不同类型,如 0, -12为整型常量,为整型常量,4.6,-1.23为双精度浮点型常量,为双精度浮点型常量,a,b为字符型常量为字符型常量等
2、。这类常量的值一般可以从其字面形式即可看出,因等。这类常量的值一般可以从其字面形式即可看出,因此也叫此也叫字面常量字面常量或者或者直接常量直接常量。2.可也用一个标识符可也用一个标识符(identifier)代表一个常量,这样的代表一个常量,这样的常量叫做常量叫做符号常量符号常量。#include /*example 1*/void main( )int bl1, bl2;bl1 = 6;bl2 = 6;printf( “bl1 = %1d, bl2 = %1d”, bl1, bl2 );bl1 = 6, bl2 = 6#include /*example 2*/#define SIX6voi
3、d main( )int bl1, bl2;bl1 = SIX;bl2 = SIX; printf( “bl1 = %1d, bl2 = %1d”, bl1, bl2 );bl1 = 6, bl2 = 6使用符号常量的优点之一是含义清楚。#include /*example 3*/void main( )double surf, vol;surf = ( 5.0*1.0 + 5.0*2.0 + 2.0*1.0 )*2.0;vol = 5.0*2.0*1.0;printf( “surface = %fn volume = %fn”, surf, vol );surface = 34.0 volu
4、me = 10.0#include /*example 4*/#define L5.0#define W1.0#define H2.0void main( )double surf, vol;surf = ( L*W + L*H + W*H )*2.0;vol = L*W*H;printf( “surface = %fn volume = %fn”, surf, vol );surface = 34.0 volume = 10.0使用符号常量的优点之二是方便修改常量的值。#include /*example 5*/#define L2.5#define W1.0#define H2.void
5、main( )double surface, volum;surface = ( L*W + L*H + W*H )*2;volum = L*W*H;printf( “surface = %5.2f, volum = %5.2fn”, surface, volumn );3.2.2 3.2.2 变量变量n变量代表计算机内存当中具有特定属性的一个存储单元,该单元用来存放数据,也就是变量的值,在程序运行期间,这些值可以发生改变。n一个变量应该有一个名字,程序根据变量的名字访问相应的存储单元。10.32596x变量名变量名存储存储单元单元变量值变量值n变量的命名规则1.1.由字母、数字和下划线三种字
6、符组成。由字母、数字和下划线三种字符组成。2.2.第一个字符不能为数字。第一个字符不能为数字。3.3.大小写字母认为是不同的字符(大小写敏感)。大小写字母认为是不同的字符(大小写敏感)。4.4.ANSI CANSI C对长度没有特别规定,决定于编译系统。对长度没有特别规定,决定于编译系统。n下面那些是变量的合法命名? a a,a0ca0c,#7#7,22,A7A7,007007,2we2we,PiPi,_Pi_Pi,PI_PI_ a-6, e4, a-6, e4, y.xy.x, L, Ln在只认8个有效字符作为变量名的编译器上,下面那些变量是相同的?abc, aBc, a1234567,a1
7、2345678 nC语言对变量作强制定义,即遵循“先定义,后使用的原则”1.1.凡未定义的,系统不把它认为变量。凡未定义的,系统不把它认为变量。2.2.每一个变量被指定一种确定的类型,便于为该变量每一个变量被指定一种确定的类型,便于为该变量分配存储单元。分配存储单元。3.3.为每个变量指定类型方便编译器检查运算的合法性。为每个变量指定类型方便编译器检查运算的合法性。3.3.1 3.3.1 整型常量的表示方法整型常量的表示方法nC语言中,整型常量有三种表示方式十进制整数。如十进制整数。如1212,3535,-78-78等。等。八进制整数。以八进制整数。以0 0开头的整数。如开头的整数。如0230
8、23。 (23)(23)8 8=(28=(281 1+38+380 0) )1010=(19)=(19)1010十六进制整数。以十六进制整数。以0x0x开头的整数。如开头的整数。如0x120x12。(12)(12)1616=(116=(1161 1+216+2160 0) )1010=(18)=(18)10103.3.2 3.3.2 整型变量整型变量n整型数据在内存中以二进制补码形式存放。原码原码:一个整数的原码是该整数的绝对值二进制形式。:一个整数的原码是该整数的绝对值二进制形式。补码补码:正整数的补码与原码相同,负整数的补码是其原:正整数的补码与原码相同,负整数的补码是其原码按位取反再加码
9、按位取反再加1.1.整数+10在内存中的存放形式0 0 0 0 0 0 0 0 0 0 0 0 1 0 1 01 1 1 1 1 1 1 1 1 1 1 1 0 1 0 11 1 1 1 1 1 1 1 1 1 1 1 0 1 1 0整数-10在内存中的存放形式取反加1n整型变量的分类n按长度分基本类型基本类型 intint短整型短整型 short short intint 或者或者 shortshort长整型长整型 long long intint 或者或者 longlongn按符号分有符号型有符号型 signedsigned无符号型无符号型 unsignedunsigned n一个整型变量
10、的类型应该包含两个部分signed/unsigned signed/unsigned intint/short /short int/longintint/longint n关于整型变量大小的范围C C语言没有规定各种类型的整型变量存储单元的长度,各语言没有规定各种类型的整型变量存储单元的长度,各种机器上可能不一样,一般与机器的字长一样。种机器上可能不一样,一般与机器的字长一样。一般而言,一般而言,shortshort型对应的内存不大于型对应的内存不大于intint型,型, intint型不型不大于大于long long 型。型。n有符号和无符号整型变量的存储0 11 1 1 11 1 1 1
11、1 1 1 11 11 11 1 1 11 1 1 11 1 1 11 1= 32767= 655351 11 1 1 11 1 1 11 1 1 11 1 =-1signedsignedunsignedn整型变量的定义 int n, I, N, M, L;long j, k, nNum, iPhoneNum;unsigned short ID, id;n整型变量的溢出0 11 1 1 11 1 1 11 1 1 11 1 = 327671 00 0 0 00 0 0 00 0 0 00 0 = -327681+3.3.3 3.3.3 整型常量的类型整型常量的类型(16(16位机位机) )1.
12、1.一个一个-32768-32768-32767-32767之间的之间的整数,是整数,是intint型常量。型常量。2.2.超出上述范围的认为是超出上述范围的认为是long long intint型常量。型常量。3.3.一个整型常量后面用一个整型常量后面用u u或者或者U U结尾,认为是无符号型结尾,认为是无符号型常量。如果是常量。如果是-12u-12u,则先将,则先将-12-12转换为其补码,然后转换为其补码,然后将补码作为无符号数。将补码作为无符号数。4.4.整型常量后面用整型常量后面用l l或者或者L L结尾,则该整型常量为结尾,则该整型常量为long long intint 型。型。习 题nP66 习题3.2, 3.4