C语言数据类型
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
/* a=111111.1*/
/* b=111111.111*/
2.2
常量与变量
(2)实型变量的定义与使用 • 例2-3实型变量的使用
#include<stdio.h> int main() { float x,y,z; x=10; y=20; z=x+y ; printf(“x+y=%f\n”,z); return 0; } 运行结果:x+y=30.000000
2.2
常量与变量
在C语言中,允许将程序中的常量定义为一 个标识符,称为符号常量。在使用符号常量前 必须先加以定义,一般情况下,符号常量使用 大写英文字母表示。
其定义的一般形式为: #define <符号常量名> 例如: #define PRICE
<常量> 35
2.2
常量与变量
变量名
a 2.2.2 变量 例: main() main() 例: 3 变量值 int a=2,b,c=4; •概念:其值可以改变的量 { int a,b=2; { int a,b=2; int a,b,c; float data=3.67; 变量定义 存储单元 float data; a=1; data; float •变量名与变量值 char ch=„A‟; a=1; data; float int x=1,y=1,z=1; •变量定义的一般格式: data=(a+b)*1.2; data=(a+b)*1.2; int x=y=z=1; ╳ printf(“data=%f\n”,data); 数据类型 变量1[,变量2,…,变量n]; printf(“data=%f\n”,data); } } •变量初始化:定义时赋初值 决定分配字节数 合法标识符 •变量的使用:先定义,后使用 和数的表示范围
aaa
13
2.2
常量与变量
5.字符串常量 定义:用双引号(“”)括起来的字符序列 存储:每个字符串尾自动加一个 ‘\0’ 作为 字符串结束标志 例 字符串‚hello”在内存中
h e l l o \0
例
\0 空串 ‚‛ • 字符常量与字符串常量不同
例 ‘பைடு நூலகம்‟ a
“a”
a \0
例:
char ch; ch=“A”;
例:
char ch; ch=„A‟;
2.2
常量与变量
6.符号常量 (1)标识符 • 定义:用来标识变量、常量、函数等的字符 序列 • 组成: 例:判断下列标识符号合法性 M.D.John sum –只能由字母、数字、下划线组成,且第一 Sum M.D.John day Date 3days 个字母必须是字母或下划线 student_name #33 lotus_1_2_3 char –大小写敏感 $123 a>b _above $123 a>b –不能使用关键字 • 长度:最长32个字符 • 命名原则: –见名知义 –不宜混淆 如1与l, o与0
2.2
常量与变量
(2)整型变量的定义与使用
例2-1 整型变量的使用
#include <stdio.h> int main() { int x,y,z; x=10;y=20; z=x+y; printf(“x+y=%d\n”,z); return 0; } 输出结果:x+y=30
2.2
常量与变量
(3)整型数据在内存中的存放形式
2.2
常量与变量
•整型常量的说明 (1)空白字符不可以出现在整数数字之间 (2)根据其值所在范围确定其数据类型 (3)在整常量后加字母l或L,认为它是 long int 型常量
例如 30000 为int型 65536 为long int 型 79L、012L 为long int 型
2.2
常量与变量
数据类型
所占位数 16 16 32 16 16 32 32 64 8 8 数的表示范围 -32768~32767 -32768~32767 -2147483648~2147483647 0~65535 0~65535 0~4294967295 3.4e-38~3.4e38 1.7e-308~1.7e308 -128~127 0~255
2.2
例
常量与变量
宏定义
(4)变量的初始化
#define PRICE 12.5 main() { int num=3; float total; char ch1,ch2=„D‟;
变量定义
total=num*PRICE; 输出结果 ch1=ch2-„A‟+„a‟; printf(“total=%f,ch1=%c\n”,total,ch1);
int x; x=10; 则变量x的值10在内存中的存放形式:
int x;
x=-10; 则变量x的值10在内存中的存放形式:
2.2
常量与变量
(4)整型数据的溢出 例2-2 整型数据的溢出问题 #include <stdio.h> int main() { int x, y; x=32767; y=x+1; printf("%d,%d\n",x,y); return 0; } 运行结果:-32768 原因:一个int型变量只能容纳-32768到32767范 围内的数,无法表示超过这个范围的数。
3.实型常量 • 实常数或浮点数,是一个十进制表示的符号实数 • 表示形式: 十进制小数形式 [digits].[digits] 如0.123, .123, 123.0, 0.0, 123. 指数形式(包括整数部分、尾数部分和指数部 分 ) [digits] [.digits] [ E|e[ + | - ] digits] 小数点之前是整数部分,小数点之后是尾数部 分,小数点在没有尾数时可省略。 如12.3e3 ,123E2
C 数 据 类 型
基本类型
聚合类型
2.1
基本数据类型
类型 符号 有 整 型 无 实 型 字 符 型 有 有 有 无 关键字 (signed) int (signed) short (signed) long unsigned int unsigned short unsigned long float double char unsigned char
2.2
常量与变量
1.整型变量 (1)整型变量的分类 基本型 短整型 长整型 无符号整型
基本型:类型说明符为int,在内存中 无符号整型:类型说明符为unsigned。 短整型:类型说明符为short int或 占2个字节。 ⅰ. 无符号基本型:类型说明符为 长整型:类型说明符为long int或 short,所占字节和取值范围均与基本 unsigned int或 unsigned。 long,在内存中占4个字节。 型相同。 ⅱ. 无符号短整型:类型说明符为 unsigned short。 ⅲ. 无符号长整型:类型说明符为 unsigned long。
<
回车 响铃 单引号 3位8进制数代表的字符
2.2
常量与变量
如 ‘\101’ -----------‘A’ ‘\012’ -----------’\n’ ‘\376’ -----------’’ ‘\x61’ -----------’a’ ‘\060’ -----------’0’
例 转义字符举例
2.2
常量与变量
int a=1, b=-3,c;
…... 地址
•变量定义位置:一般放在函数开头
a
地址
1 -3
…...
2字节
b
地址 编译程序根据变量定义为其 分配指定字节的内存单元
2字节
c
2字节
内存
随机数
2.2
常量与变量
与常量类似,变量也有不同的类型, 一般可以分为以下三种类型: 整型变量 实型变量 字符变量
2.2
常量与变量
2.整型常量(既整常数) 三种形式: 十进制整数:由数字0~9和正负号表示.如 123,-456,0 八进制整数:由数字0开头,后跟数字0~7表 示.如0123,011 十六进制整数:由0x开头,后跟 0~9,a~f,A~F表示.如0x123,0Xff
转换成十进制数的方法: 0123 = 1x82 +2x81+3x80 =( 83 )10 0x123 = 1x162 +2x161+3x160= ( 291 )10 0Xff = 15x161+15x160=( 255 )10
2.2
(3)字符变量
常量与变量
字符变量存放字符ASCII码
char与int数据间可进行算术运算
例
a=‘D’; x=‘A’+5; s=‘!’+‘G’
/* a=68; */ /* x=65+5; */ /* s=33+71; */
没有字符串变量,用字符数组存放
2.2
常量与变量
#include <stdio.h> int main( ) { char c1, c2; /* 定义c1,c2为字符型变量 */ c1 = 97; c2 = 98; /* 将整数97和98分别赋给c1和c2 */ printf(”%c,%c\n”, c1, c2); /* 以字符形式输出c1和c2 */ printf(”%d,%d”, c1, c2); /* 输出c1和c2的ASCII码值 */ printf(”%d”, c1 + c2); return 0; } 运行结果如下: a,b 97,98
2.2
常量与变量
4.字符常量 定义:用单引号括起来的单个普通字符或转义字符。 • 分为一般字符常量和特殊字符常量 • 一般字符常量: 如’a’、’9’、’!’等。单引号只起定界作 用并不表示字符本身,中间的字符可以是除 单引号(’)和反斜杠( \)以外的数字、 字母等C语言字符集中包含的所有可显示字 符。 • 特殊字符常量(也叫转义字符) 是C语言中表示字符的一种特殊形式,其含 义为将反斜杠(\)后面的字符转换成另外
2.2
常量与变量
• 实型常量的说明 (1)实型常量采用十进制小数形式表示时,必须有 小数点。例如:123. 是实型常量,而123是整型 常量 (2)采用指数形式表示时,在E或e之前必须要有数 字,且之后的指数必须为整数。例如:E6、.e6、 e 等都是不合法的 (3)实型常量的整数部分为0时可以省略,如下形式 是允许的:.57, .0075e2, -.125, -.175E-2 (4)所有的实型常量均被看作是双精度类型 (double)
第二章 数据类型 运算符 和 表达式
第二章 数据类型、运算符和表达式
• 内容提要 数据类型 常量与变量 运算符与表达式
2.1
数据类型总表
数据类型
短整型 short 整 型 整型 int 长整型 long 单精度型 float 实型 双精度型 double 字符类型 char 数据类型决定: 结构体 1.struct 数据占内存字节数 共用体 2.union 数据取值范围 枚举类型3. enum 其上可进行的操作 指针类型 空类型 数组 void
2.2
如
常量与变量
•字符常量的值:该字符的ASCII码值
‘A‟——65, ‘a‟——97, ‘0‟——48 , „\n‟——10
转义字符及其含义:
转义字符 \n \v \r \a \„ \ddd 含义 换行 垂直制表 转义字符 \t \b \f \\ \“ \xhh 含义 水平制表 退格 换页 反斜线 双引号 2位16进制数代表的字符
2.2
常量与变量
2.实型变量 (1)实型变量的分类 • 单精度实型:类型说明符为float,在内存中 占4个字节,提供7位有效数字。 • 双精度实型:类型说明符为double,在内存 中占8个字节,提供1 5 ~ 1 6位有效数字。 例 float a; a=111111.111; double b; b=111111.111;
int main() { printf("\101 \x42 C\n"); printf("I say:\"How are you?\"\n"); printf("\\C Program\\\n"); printf("Turbo \'C\'"); }
运行结果:(屏幕显示) ABC Isay:”How are you?” \C Program\ Turbo ‘C’
说明:数据类型所占字节数随机器硬件不同而不同, 上表以IBM PC机为例。
2.2
常量与变量
• 数据是程序的处理对象
• C语言将数据分为常量与变量
2.2
常量与变量
2.2.1 常量 1.常量的定义及分类 定义:程序运行的过程中,其值不能改变 的量。 分类: 整型常量 实型常量 字符常量 字符串常量 符号常量