c语言数据类型
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
2. 整型变量的分类: 基本型 短整型 长整型 无符号型 int short int 或 short long int 或 long
-32768 ∼ 32767
无符号整型 无符号长整型 无符号短整型
unsigned unsigned unsigned
int long short
0 ∼ 65535
说明:无符号型变量只能存放不带符号的整数,不能存放负数 一个无符号整型变量中可以存放的正数的范围比一般整型变量中正数的范围大
±10-37~ ± 3.4X1038(精度6~7位)
± 10-307~ ± 1.7X10308(精度15~16位) ± 10-4923~ ± 1.2X104923(精度18~19位)
2.2 标识符
C语言中,标识符分为:关健字和用户自定义标识两类。
一、关健字
在C语言中的关键字,根据其功能不同可分为以下几种。
ຫໍສະໝຸດ Baidu
2、实型常量(实数或浮点数)
• 表示形式:
–十进制数形式:(必须有小数点) 如0.123, .123, 123.0, 0.0, 123. 整数部分和小数部分都可省,但不能同时省 –指数形式: (e或E之前必须有数字;指数必须为整 数;指数部分和尾数部分均不可省) 如12.3e3 ,123E2, 1.23e4 , e-5 , 1.2E-3.5
• 实型常量的类型
–默认double型 –在实型常量后加字母f或F,认为它是float 型
3、字符常量
• 定义:用单引号括起来的单个普通字符或转义字符. 如 ‘a‟ „A‟ „?‟ „\n‟ „\101‟ • 字符常量的值:该字符的ASCII码值
• 转义字符:反斜线后面跟一个字符或一个代码值表示 如 ‘A‘——65, ‘a‘——97, 转义字符及其含义: , ‗\n‘——10 ‘0‘——48
例 ‘a‘
a
―a‖
a \0
例:
char ch; ch=―A‖;
例:
char ch; ch=‗A‘;
2.4 变量
• 概念:在程序运行中,其值会发生变化 • 变量名与变量值 • 变量定义的一般格式: 数据类型 变量1[,变量2,…,变量n];
变量初始化:定义时赋初值 例: int a=1, b=-3,c; 变量的使用:先定义,后使用 int a,b,c; 决定分配字节数 合法标识符 例: 变量定义位置:一般放在函数开头 int a=2,b,c=4; 和数的表示范围 float data; 地址 main() main() 1 2字节 a float data=3.67; 例1 char ch=‗A‘; 例2 { { int a,b=2; 地址 int a,b=2; int student; x=1,y=1,z=1; 变量定义 int -3 float a,b,c; a=1; b 2字节 float//Undefined symbol „statent‟ in function main data; stadent=19; int c=a%b; a=1; //Illegal use of floating point in function main 地址 可执行语句 x=y=z=1;
2.4 变量
4. 整型数据的溢出
一个int型变量的最大值为32767,如果再加1,其结果不是 32768,而是-32768。即“溢出”
例:
main() { int a,b; a=32767; b=a+1; printf("%d,%d\n",a,b); } 运行结果:
a=32767,b=-32768
1、整型常量(整常数)
• 三种形式:
–十进制整数:由数字0~9和正负号表示.如 123,-456,0 –八进制整数:由数字0开头,后跟数字0~7表示.如0123,011 –十六进制整数:由0x开头,后跟0~9,a~f,A~F表示. 如0x123,0Xff
• 整型常量的类型 问题: 问题: –根据其值所在范围确定其数据类型 0123 = (( 83 ))10 0123 = 10 –在整常量后加字母l或L,认为它是long int 型常量 0x123 = (( 291 ))10 0x123 = 10 例 30000= 为int型 ))10 0Xff = (( 255 10 0Xff 12 与 12L 例
65536 为long int 型
例1、表达式 0195 是一个八进制整数。
例2、08是正确的整型常量。
例3、以下选项中,合法的一组C语言数值常量是()(2007 年9月全国计算机等考试原题) A、028 B、12. C、.177 D、0x8A .5e-3 OXa23 4c1.5 10,000 -0xf 4.5e0 Oabc 3.e5 例4、以下选项中正确的常量是()。 A、12 B、-20 C、1,000 例5、在C语言中,不正确的int类型的常数是 A、32768 B、0 C、037 D、0xAF D、4 5 6
一倍
int 0111 1111 1111 1111
0 正数 1 负数 一个字节
unsigned 1111 1111 1111 1111
符号位
2.4 变量
3. 整型变量的定义 int a,b; short c , d ; long e , f ; unsigned g , h ; ( 定义变量一般放在函数开头) 或 short int c, d; 或 long int e, f; 或 unsigned int g, h;
例2、以下()是不合法的标识符。 A、abc.c B、file C、Mian D、prontf
例3、在 C 程序中 ,APH 和 aph 代表不同的变量。
2.3 常量
• 定义:程序运行时其值不能改变的量(即常数) • 分类:
–符号常量:用标识符代表常量 » 定义格式: #define 符号常量 常量 » 习惯上,符合常量用大写字母表示 如 #define PI 3.1415926535 » 定义符合常量时,不能以“;”结束 » 一个#define占一行,且要从第一列开始书写 » 一个源程序文件中可含有多个#define命令,不同的#define 命令指定的“标识符”不能相同 –直接常量: » 整型常量 » 实型常量 » 字符常量 » 字符串常量
2.4 变量
符号位
a
0111111111111111
32767
b=a+1
符号位
b
1000000000000000
-32768
例1、下列定义中,
定义的变量可以存放 –123.4。
A.long a
B.unsigned b
C.int d
D.float c
例2、以下关于long、int和short类型数据占用内存大小的叙述 中正确的是()( 2007年9月全国计算机等考试原题)
转义字符 如
\n
\v \r \a \‗
例: 含义 转义字符 含义 ‘\101‘ -----------‗A‘ ‗\012‘ -----------‘\n‘ ‗A‘-------‘\101‘-------‘\x41‘--------65 ‗\376‘换行 -----------‘‘ \t ‗\x61‘ -----------‘a‘ 水平制表 ‗\60‘ -----------‘0‘ ‗\483‘ ----------()
• • •
float data; data=(a+b)*1.2; data=(a+b)*1.2; c 编译程序根据变量定义为其 分配指定字节的内存单元 printf(―data=%f\n‖,data); printf(―data=%f\n‖,data); } } 内存
…...
…...
2字节
随机数
第二讲 C语言数据类型
参考教材第2章P13-28
教学目的
1,掌握C语言的数据类型 2,掌握整型、实型、字符型数据的常量表示 3,掌握整型、实型、字符型数据的变量表示 4,各种不同类型数据间的转换
重点和难点
重点: 各种基本数据类型的常量和变量 难点: 不同类型的数据在内存中的物理存储形式
2.1 C的数据类型
整型 数值类型 基本类型 短整型 (short) 整型 ( int ) 长整型 (long) 单精度型 ( float ) 双精度型 (double)
实型(浮点型)
数 据 类 型
字符类型 ( char ) 枚举类型 ( enum ) 数组类型 结构体类型 (struct) 共用体类型 (union)
例: 整型变量的定义和使用
#include <stdio.h> main() {int a,b,c,d; /* 指定a,b,c,d为整型变量 */ unsigned u; /* 指定u为无符号整型变量* / a=12;b=-24;u=10; c=a+u;d=b+u; printf("a+u=%d,b+u=%d\n",c,d); } 运行结果为 a+u=22,b+u=-14
sum Sum M.D.John day Date 3days student_name #33 #33 lotus_1_2_3 char a>b _above $123 a>b $123
例1、可在C程序中用做用户标识符的一组标识符是( )。
(2007年9月全国计算机等考试原题)
A、and B、Date C、Hi D、case
2.4 变量
2.4.1 整型变量:
1. 整型数据在内存中的存储形式
整型数据在内存中以二进制形式存放,每一个整型变量在内 存中占2个字节.
例:int i,k; i=10; j=-10;
正数 0000 0000 0000 1010
i=10
j=-10
1111 1111 1111 0110
负数
2.4 变量
构造类型 (组合类型)
指针类型
空类型 (void)
不返回任何类型的数据
2.1 C的数据类型
Turbo C数值型数据占用的存储空间及数值范围
类型
基本类型 短整数 长整数 无符整数 无符号短整数
类型标识符
int short [int] long [int] unsigned [int] unsigned short
A、均占4个字节
B、根据数据的大小来决定所占内存的字节数 C、由用户自己定义 D、由C语言编译系统决定
2.4 变量
2.2 标识符
二、标识符 • 定义:用来标识变量、常量、函数等的字符序列 • 组成:
– 只能由字母、数字、下划线组成,且第一个字母必须是字母或下 划线 – 字母区分大小写 – 不能使用关键字
• 长度:最长32个字符 • 命名原则:
– 见名知意 例:判断下列标识符号合法性 – 不宜混淆 如l与I, o与0
垂直制表 \b 退格 \f 回车 例 main() { 响铃 printf(―Y\b=\n‖); \\ }单引号 \― 换页 运行结果: 反斜线 屏幕显示:= 打印机输出:¥ 双引号 2位16进制数代表的字符
<
\ddd
3位8进制数代表的字符
\xhh
4、字符串常量
• 定义:用双引号(“”)括起来的0个或者多个字符组 成的序列 • 存储:每个字符串尾自动加一个 ‘\0’ 作为字 符串结束标志 例 字符串“hello‖在内存中 h e l l o 如:“C language programming”、“a\\n”、 \0 “#123”、“”等为字符串常量 例 空串 “” \0 • 字符常量与字符串常量不同
占用 字节
2 2 4 2 2
数值范围
-32768~32767 -32768~32767 -2147483648~214748647 0~65535 0~65525
无符号长整数
单精度实数 双精度实数 长双精度实数
unsigned long
float double Long double
4
4 8 16
0~4294967295
说明数据类型: int long short char unsigned float double enum struct union void const 定义数据类别:auto static register extern 用于语句的: if else case default break do while for switch goto return continue 为原有的数据类型命新名:typedef 求字节数:sizeof 预处理: define include undef if else endif ifdef ifndef
-32768 ∼ 32767
无符号整型 无符号长整型 无符号短整型
unsigned unsigned unsigned
int long short
0 ∼ 65535
说明:无符号型变量只能存放不带符号的整数,不能存放负数 一个无符号整型变量中可以存放的正数的范围比一般整型变量中正数的范围大
±10-37~ ± 3.4X1038(精度6~7位)
± 10-307~ ± 1.7X10308(精度15~16位) ± 10-4923~ ± 1.2X104923(精度18~19位)
2.2 标识符
C语言中,标识符分为:关健字和用户自定义标识两类。
一、关健字
在C语言中的关键字,根据其功能不同可分为以下几种。
ຫໍສະໝຸດ Baidu
2、实型常量(实数或浮点数)
• 表示形式:
–十进制数形式:(必须有小数点) 如0.123, .123, 123.0, 0.0, 123. 整数部分和小数部分都可省,但不能同时省 –指数形式: (e或E之前必须有数字;指数必须为整 数;指数部分和尾数部分均不可省) 如12.3e3 ,123E2, 1.23e4 , e-5 , 1.2E-3.5
• 实型常量的类型
–默认double型 –在实型常量后加字母f或F,认为它是float 型
3、字符常量
• 定义:用单引号括起来的单个普通字符或转义字符. 如 ‘a‟ „A‟ „?‟ „\n‟ „\101‟ • 字符常量的值:该字符的ASCII码值
• 转义字符:反斜线后面跟一个字符或一个代码值表示 如 ‘A‘——65, ‘a‘——97, 转义字符及其含义: , ‗\n‘——10 ‘0‘——48
例 ‘a‘
a
―a‖
a \0
例:
char ch; ch=―A‖;
例:
char ch; ch=‗A‘;
2.4 变量
• 概念:在程序运行中,其值会发生变化 • 变量名与变量值 • 变量定义的一般格式: 数据类型 变量1[,变量2,…,变量n];
变量初始化:定义时赋初值 例: int a=1, b=-3,c; 变量的使用:先定义,后使用 int a,b,c; 决定分配字节数 合法标识符 例: 变量定义位置:一般放在函数开头 int a=2,b,c=4; 和数的表示范围 float data; 地址 main() main() 1 2字节 a float data=3.67; 例1 char ch=‗A‘; 例2 { { int a,b=2; 地址 int a,b=2; int student; x=1,y=1,z=1; 变量定义 int -3 float a,b,c; a=1; b 2字节 float//Undefined symbol „statent‟ in function main data; stadent=19; int c=a%b; a=1; //Illegal use of floating point in function main 地址 可执行语句 x=y=z=1;
2.4 变量
4. 整型数据的溢出
一个int型变量的最大值为32767,如果再加1,其结果不是 32768,而是-32768。即“溢出”
例:
main() { int a,b; a=32767; b=a+1; printf("%d,%d\n",a,b); } 运行结果:
a=32767,b=-32768
1、整型常量(整常数)
• 三种形式:
–十进制整数:由数字0~9和正负号表示.如 123,-456,0 –八进制整数:由数字0开头,后跟数字0~7表示.如0123,011 –十六进制整数:由0x开头,后跟0~9,a~f,A~F表示. 如0x123,0Xff
• 整型常量的类型 问题: 问题: –根据其值所在范围确定其数据类型 0123 = (( 83 ))10 0123 = 10 –在整常量后加字母l或L,认为它是long int 型常量 0x123 = (( 291 ))10 0x123 = 10 例 30000= 为int型 ))10 0Xff = (( 255 10 0Xff 12 与 12L 例
65536 为long int 型
例1、表达式 0195 是一个八进制整数。
例2、08是正确的整型常量。
例3、以下选项中,合法的一组C语言数值常量是()(2007 年9月全国计算机等考试原题) A、028 B、12. C、.177 D、0x8A .5e-3 OXa23 4c1.5 10,000 -0xf 4.5e0 Oabc 3.e5 例4、以下选项中正确的常量是()。 A、12 B、-20 C、1,000 例5、在C语言中,不正确的int类型的常数是 A、32768 B、0 C、037 D、0xAF D、4 5 6
一倍
int 0111 1111 1111 1111
0 正数 1 负数 一个字节
unsigned 1111 1111 1111 1111
符号位
2.4 变量
3. 整型变量的定义 int a,b; short c , d ; long e , f ; unsigned g , h ; ( 定义变量一般放在函数开头) 或 short int c, d; 或 long int e, f; 或 unsigned int g, h;
例2、以下()是不合法的标识符。 A、abc.c B、file C、Mian D、prontf
例3、在 C 程序中 ,APH 和 aph 代表不同的变量。
2.3 常量
• 定义:程序运行时其值不能改变的量(即常数) • 分类:
–符号常量:用标识符代表常量 » 定义格式: #define 符号常量 常量 » 习惯上,符合常量用大写字母表示 如 #define PI 3.1415926535 » 定义符合常量时,不能以“;”结束 » 一个#define占一行,且要从第一列开始书写 » 一个源程序文件中可含有多个#define命令,不同的#define 命令指定的“标识符”不能相同 –直接常量: » 整型常量 » 实型常量 » 字符常量 » 字符串常量
2.4 变量
符号位
a
0111111111111111
32767
b=a+1
符号位
b
1000000000000000
-32768
例1、下列定义中,
定义的变量可以存放 –123.4。
A.long a
B.unsigned b
C.int d
D.float c
例2、以下关于long、int和short类型数据占用内存大小的叙述 中正确的是()( 2007年9月全国计算机等考试原题)
转义字符 如
\n
\v \r \a \‗
例: 含义 转义字符 含义 ‘\101‘ -----------‗A‘ ‗\012‘ -----------‘\n‘ ‗A‘-------‘\101‘-------‘\x41‘--------65 ‗\376‘换行 -----------‘‘ \t ‗\x61‘ -----------‘a‘ 水平制表 ‗\60‘ -----------‘0‘ ‗\483‘ ----------()
• • •
float data; data=(a+b)*1.2; data=(a+b)*1.2; c 编译程序根据变量定义为其 分配指定字节的内存单元 printf(―data=%f\n‖,data); printf(―data=%f\n‖,data); } } 内存
…...
…...
2字节
随机数
第二讲 C语言数据类型
参考教材第2章P13-28
教学目的
1,掌握C语言的数据类型 2,掌握整型、实型、字符型数据的常量表示 3,掌握整型、实型、字符型数据的变量表示 4,各种不同类型数据间的转换
重点和难点
重点: 各种基本数据类型的常量和变量 难点: 不同类型的数据在内存中的物理存储形式
2.1 C的数据类型
整型 数值类型 基本类型 短整型 (short) 整型 ( int ) 长整型 (long) 单精度型 ( float ) 双精度型 (double)
实型(浮点型)
数 据 类 型
字符类型 ( char ) 枚举类型 ( enum ) 数组类型 结构体类型 (struct) 共用体类型 (union)
例: 整型变量的定义和使用
#include <stdio.h> main() {int a,b,c,d; /* 指定a,b,c,d为整型变量 */ unsigned u; /* 指定u为无符号整型变量* / a=12;b=-24;u=10; c=a+u;d=b+u; printf("a+u=%d,b+u=%d\n",c,d); } 运行结果为 a+u=22,b+u=-14
sum Sum M.D.John day Date 3days student_name #33 #33 lotus_1_2_3 char a>b _above $123 a>b $123
例1、可在C程序中用做用户标识符的一组标识符是( )。
(2007年9月全国计算机等考试原题)
A、and B、Date C、Hi D、case
2.4 变量
2.4.1 整型变量:
1. 整型数据在内存中的存储形式
整型数据在内存中以二进制形式存放,每一个整型变量在内 存中占2个字节.
例:int i,k; i=10; j=-10;
正数 0000 0000 0000 1010
i=10
j=-10
1111 1111 1111 0110
负数
2.4 变量
构造类型 (组合类型)
指针类型
空类型 (void)
不返回任何类型的数据
2.1 C的数据类型
Turbo C数值型数据占用的存储空间及数值范围
类型
基本类型 短整数 长整数 无符整数 无符号短整数
类型标识符
int short [int] long [int] unsigned [int] unsigned short
A、均占4个字节
B、根据数据的大小来决定所占内存的字节数 C、由用户自己定义 D、由C语言编译系统决定
2.4 变量
2.2 标识符
二、标识符 • 定义:用来标识变量、常量、函数等的字符序列 • 组成:
– 只能由字母、数字、下划线组成,且第一个字母必须是字母或下 划线 – 字母区分大小写 – 不能使用关键字
• 长度:最长32个字符 • 命名原则:
– 见名知意 例:判断下列标识符号合法性 – 不宜混淆 如l与I, o与0
垂直制表 \b 退格 \f 回车 例 main() { 响铃 printf(―Y\b=\n‖); \\ }单引号 \― 换页 运行结果: 反斜线 屏幕显示:= 打印机输出:¥ 双引号 2位16进制数代表的字符
<
\ddd
3位8进制数代表的字符
\xhh
4、字符串常量
• 定义:用双引号(“”)括起来的0个或者多个字符组 成的序列 • 存储:每个字符串尾自动加一个 ‘\0’ 作为字 符串结束标志 例 字符串“hello‖在内存中 h e l l o 如:“C language programming”、“a\\n”、 \0 “#123”、“”等为字符串常量 例 空串 “” \0 • 字符常量与字符串常量不同
占用 字节
2 2 4 2 2
数值范围
-32768~32767 -32768~32767 -2147483648~214748647 0~65535 0~65525
无符号长整数
单精度实数 双精度实数 长双精度实数
unsigned long
float double Long double
4
4 8 16
0~4294967295
说明数据类型: int long short char unsigned float double enum struct union void const 定义数据类别:auto static register extern 用于语句的: if else case default break do while for switch goto return continue 为原有的数据类型命新名:typedef 求字节数:sizeof 预处理: define include undef if else endif ifdef ifndef