问题的提出 下面是计算两个数据参与算术运算的源/所使用的数 果 据类型不对 void main( inta,b,c,x,Y;/*定义a,b,c,x,y为整型变量*/ a=300;b=500; c=a+b;x≡a*b; y=a/b; /*a除以b,其商赋值给变量y*/ printf(" c=d x=d, y=d",C,x, y) }程序运行结果如下图 或如下图 C:\ TOINE. EXE c:C: \c\Debug\lt. X c=88,x=18928,y= c=8g,x=15000,y=
问题的提出 下面是计算两个数据参与算术运算的C语言程序,请分析其结 果。 void main() { int a,b,c,x,y; /* 定义a,b,c,x,y为整型变量 */ a=300; b=500; c=a+b; x=a*b; y=a/b; /* a除以b,其商赋值给变量y */ printf(" c=%d, x=%d, y=%d",c,x,y); } 程序运行结果如下图 ?? 所使用的数 据类型不对 ? 或如下图
第2章数据类型与常用库函数 c语言的数据类型 各种常量 变量 C语言中灵活的指针变量 标准输入输出函数用法 常用的库函数
◼ C语言的数据类型 ◼ 各种常量 ◼ 变量 ◼ C语言中灵活的指针变量 ◼ 标准输入/输出函数用法 ◼ 常用的库函数 第2章 数据类型与常用库函数
进位制数、补码、AC等日计算机文化基础课完成 掌握各种常用数据类型的数据在内存中的春放形式 ■掌握常量的分类,变量的定义和变量名的命名规则 理解指针的含义,掌握指针变量的定义及简单应用 掌握一些常用内部函数的使用 本章重点:变量与常量的概念、格式输入/输出函数 ( scanf0/ printf0)的基本使用 本章难点:不同类型的数据在内存中的存放形式
本章要求: ◼ 掌握各种常用数据类型的数据在内存中的存放形式 ◼ 掌握常量的分类,变量的定义和变量名的命名规则 ◼ 理解指针的含义,掌握指针变量的定义及简单应用 ◼ 掌握一些常用内部函数的使用 本章重点:变量与常量的概念、格式输入/输出函数 ( scanf() /printf())的基本使用 本章难点:不同类型的数据在内存中的存放形式 进位制数、补码、ASCII等 由计算机文化基础课完成 掌握各种常用数据类型的数据在内存中的存放形式
21C语言的数据类型 程序中的数据被以某种形式存储在内 存中,必须能被计算机识别和处理。 高级语言程序中的数据被分为多个种 类,以不同方式存储,数据类型决定 了数据的存储方式
2.1 C语言的数据类型 程序中的数据被以某种形式存储在内 存中,必须能被计算机识别和处理。 高级语言程序中的数据被分为多个种 类,以不同方式存储,数据类型决定 了数据的存储方式
21C语言的数据类型 2.1.1c语言数据类型概述 短整型( short) 整型 整型(int) 数值类型 长整型(long 基本类壁字符类型(char) 浮点型∫单精度型( float) 双精度型( double) 枚举类型(enum) 数据类型 数组类型 结构体类型( struct) 构造类型 共用体类型( union) 指针类型文件类型(FILE 空类型(void) 注意:在程序中用到的常量与变量必须是上面的一种数据类型; 正确地区分和使用不同的数据类型,可使程序运行时占用较少的内 存,确保程序运行的正确性和可靠性
2.1 C语言的数据类型 2.1.1 C语言数据类型概述 注意:在程序中用到的常量与变量必须是上面的一种数据类型; 正确地区分和使用不同的数据类型,可使程序运行时占用较少的内 存,确保程序运行的正确性和可靠性。 数据类型 基本类型 构造类型 整型 浮点型 数值类型 字符类型(char) 枚举类型(enum) 数组类型 结构体类型(struct) 共用体类型(union) 指针类型 文件类型(FILE) 空类型(void) 短整型(short) 整型(int) 长整型(long) 单精度型(float) 双精度型(double)
21C语言的数据类型 2.1.2基本数据类型 基本数据类型是构成C语言的数据类型的最基本要素 包括:整型(int) 实型( float和 double (详见P20.表2-1 字符型(char) 例如:整型数据的取值和取值范围 类型说明符 数的范围 分配字节数 int 32768-32767 2字节 short int/short 3276832767 2字节 long 21474836482147483647 4字节 unsigned int /unsigned 0~65535 2字节 unsigned short int 0~65535 字节 unsigned long int 0-4294967295 4字节
2.1 C语言的数据类型 2.1.2 基本数据类型 基本数据类型是构成C语言的数据类型的最基本要素 包括:整型(int) 实型(float 和 double) 字符型(char) 例如:整型数据的取值和取值范围 类型说明符 数的范围 分配字节数 int -32768~32767 2字节 short int/short -32768~32767 2字节 long -2147483648~2147483647 4字节 unsigned int /unsigned 0~65535 2字节 unsigned short int 0~65535 2字节 unsigned long int 0~4294967295 4字节 (详见P.20. 表2-1
21C语言的数据类型 注意:在不同的编译系统,同一类型在内存中 所占的字节数可能有不同的规定。 在 Visual c++6.0环境下, short int类型占2 字节,int、 unsigned int类型占4字节。 ■读者应了解所用系统的规定,在将一个程序从 个系统移到另一个系统时,需要注意这个区 别
◼ 注意:在不同的编译系统,同一类型在内存中 所占的字节数可能有不同的规定。 ◼ 在Visual C++ 6.0环境下,short int 类型占2 字节,int、unsigned int类型占4字节。 ◼ 读者应了解所用系统的规定,在将一个程序从 一个系统移到另一个系统时,需要注意这个区 别。 2.1 C语言的数据类型
补充:实际位长测试 在数据操作中,有时由于不知道 C语言中的基本数据类型的实际 位长,从而使数据溢出而导致计 算结果的错误。因此,常需要使 用下面的程序来测试
◼在数据操作中,有时由于不知道 C语言中的基本数据类型的实际 位长,从而使数据溢出而导致计 算结果的错误。因此,常需要使 用下面的程序来测试。 补充: 实际位长测试
补充:实际位长测试 【例 DataTest,c】基本数据类型的位长测试 sized运算符获取一个类 型所占内存的字节数大小 include void mainO printf("char %d byteIn", sizeof(char)) intf("short %d bytesIn", sizeof(short)) printf("int %d bytesin", sizeof(int)) printf("long %d bytesIn", sizeof(long)) printf("float %d bytesIn", sizeof(float) rinf( double %d bytesIn", sizeof(double)) intf("long double %d bytesin", sizeof(long double))
【例DataTest.C】 基本数据类型的位长测试 #include void main() { printf( "char ------- %d byte\n", sizeof(char) ); printf( "short ------- %d bytes\n", sizeof(short) ); printf( "int ------- %d bytes\n", sizeof(int) ); printf( "long ------- %d bytes\n", sizeof(long) ); printf( "float ------- %d bytes\n", sizeof(float) ); printf( "double ------- %d bytes\n", sizeof(double) ); printf( "long double ------- %d bytes\n", sizeof(long double) ); } 补充: 实际位长测试 sizeof运算符:获取一个类 型所占内存的字节数大小
分析和说明 sizeof是C语言的一个运算符关键字,它的使用类 似于一个函数,用来获取一个表达式、类型或数组等 所占内存的字节数大小。 令该程序在 Winte中运行,其运行结果如下所示: char 1 byte short - 2 byte 2 byte ng 4 byte float 4 byte uble 8 byte long double 10 byte
char -------- 1 byte short -------- 2 byte int -------- 2 byte long -------- 4 byte float -------- 4 byte double -------- 8 byte long double -------- 10 byte ❖ 分析和说明: sizeof是C语言的一个运算符关键字,它的使用类 似于一个函数,用来获取一个表达式、类型或数组等 所占内存的字节数大小。 ❖ 该程序在Wintc中运行,其运行结果如下所示: