C语言基本数据类型
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
没有字符串变量,用字符数组存放
例 /*ch2_003.c*/ #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);
–根据其值所在范围确定其数据类型 –在整常量后加字母l或L,认为它是long int 型常量
例 30000 为int型 例 12 与 12L 65536 为long int 型
<
实型常量(实数或浮点数)
• 表示形式:
–十进制数形式:(必须有小数点) 如0.123, .123, 123.0, 0.0, 123. –指数形式:(e或E之前必须有数字;指数必须为整数)如 12.3e3 ,123E2, 1.23e4 , e-5 , 1.2E-3.5
C语言提供有丰富的数据类型:
char(字符类型) 整 基 本 数据类型 型 short(短整型) 数据类型: int(整型)
C 语 言 数据类型
•存储空间 float(单精度浮点型) •取值范围 浮点型 double(双精度浮点型) long double(长双精度浮点型) •操作 void类型
T*(指针类型) enum(枚举)
整型常量(整常数)
• 三种形式: –十进制整数:由数字0~9和正负号表示.如 123,-456,0 问题: –八进制整数:由数字0开头,后跟数字0~7表示.如0123,011 0123 = ( 83 )10 –十六进制整数:由0x开头,后跟0~9,a~f,A~F表示. 0x123 = ( 291 )10 如0x123,0Xff = ( 255 )10 0Xff • 整型常量的类型
char ch; ch=„A‟; ch=“A”;
<
/****** 文件名:ex020101.c ******/ 源自文库****** 测定数据类型长度 ******/
整型变量
#include <stdio.h> int main(void) • short≤int≤long { • i = 0; int 可用sizeof(类型标识符)测量 printf ("char: %d bytes.\n",sizeof(char)); printf ("short: %d bytes.\n",sizeof(short)); printf ("i: %d bytes\n",sizeof (i)); /* 计算变量i的字节数*/ printf ("long: %d bytes\n",sizeof(long)); 例 float a; printf ("float: %d bytes\n",sizeof(float)); • float:占4字节,提供7位有效数字 a=111111.111; /* a=111111.1*/ printf ("double: %d bytes\n",sizeof(double)); • double:占8字节,提供15~16位有效数字 printf ("1.23456: %d bytes\n",sizeof(1.23456)); /* 计算常量的字节数*/ double b; printf ("double: %d bytes\n",sizeof(double)); b=111111.111; /* b=111111.111*/ return 0; }
• 实型常量的类型
–默认double型 –在实型常量后加字母f或F,认为它是float 型
数值的浮点表示形式
∏值的几种表示形式:
c语言中的表示形式 日常的表示法 “数字部分”的小数点的位置是“浮动的”,这种形式称为浮点数形式。 3.14159e0 3.14159×100 0.0314159e+2 0.0314159×102 凡实数都以浮点形式存储,一个实数一般用4个字节存储。 3141.59e-3 3141.59×10-3 0.0314159 +2 数字部分 指 数 (尾数) (阶码)
(signed)int
0111 1111 1111 1111 1000 0000 0000 0000
215-1=32767 -(215)=-32768
unsigned int
1111 1111 1111 1111 216-1=65535
内存中的数值是以补码形式存放的,一个正数的补码 就是该数的二进制数(如10的补码为00000000 00001010)。求一个负数的补码的方法如下: 如-10的补码可以这样求: ① 先取该数的绝对值; 先取10 ② 然后以二进制形式表示; 10的二进制码为 00000000 00001010 ③ 再对其取反; 取反得11111111 11110101 ④ 然后加1; 加1,得 11111111 11110110, 即-10的16位存储形式为:11111111 11110110。
printf 格式说明字段结构
% 修饰 宽度 精度 长度修正 格式码
a/A,c,d,e/E,f,g/G,i,,n,o,p,s ,u,x/X,%
l/L,h,ll,hh,j,z,t . 十进制整数 十进制整数 -,0,+,空格,#
(2)长度修正符
长度修正符 可修饰的格式码 参数类型
l ll h hh L
输出结果
}
运行结果: total=37.500000, ch1=d
小结
• 1、了解C语言丰富的数据类型;常量的概 念。 • 2、掌握符号常量定义方法。 • 3、掌握常用基本数据类型(整型、实型、 字符型)数据的常量表示、机内存储、以及 掌握正确选择数据类型。
2.4 数据的控制台输入与输出
输入输出的对象是数据,而数据是以介质为 载体的,因此进行输入输出操作就要与各种外部 设备发生联系,要指定从哪个设备(文件)读入数 据,将数据输出到哪个设备(文件)上去。本节只 讨论从终端(键盘)输入和输出到终端(显示器) 的输入输出函数。通常也把这些函数称为控制台 输入输出函数。主要是用得最广泛的scanf函数、 printf函数、getchar函数和putchar函数等。 其中scanf和printf用于格式化输入输出。
long(长整型) •存储结构
导 出 数据类型
struct{„}(结构体类型) union{„}(共用体类型) T[„](数组类型) 文件类型 函数类型
用户定制类型 构造类型
–基本数据类型
类型 符号 有 整 型 关键字 所占位数 数的表示范围 -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
–常量
例 符号常量举例(ch2_1.c)
• 定义:程序运行时其值不能改变的量(即常数) #define PRICE 30 • 分类: main() –符号常量:用标识符代表常量 { » 定义格式: #define 符号常量 常量 int num,total; »一般用大写字母 num=10; 如 #define PRICE 30 »是宏定义预处理命令,不是C语句 total=num*PRICE; –直接常量: printf("total=%d",total); » 整型常量 > } » 实型常量 > » 字符常量 > 运行结果:total=300 » 字符串常量 >
<
字符常量
• 定义:用单引号括起来的单个普通字符或转义字符. 转义字符及其含义: • 字符常量的值:该字符的ASCII码值 如 ‘a‟ „A‟ „?‟ „\n‟ 例 转义字符举例(ch2_001.c,ch2_004.c) „\101‟ 转义字符 含义 转义字符 含义 • 转义字符:反斜线后面跟一个字符或一个代码值表示 运行结果:(屏幕显示) main() \t 如 换行 ‘A‟——65, ‘a‟——97, 水平制表 \n ABC { ‘0‟——48 , \b „\n‟——10 Isay:”How退格 you?” are 垂直制表 \vprintf("\101main() \x42 C\n"); 例 例: \C Program\ 如 ‘\101’ -----------‘A’ ‘\012’ 运行结果: -----------’\n’ printf("I say:\"How are you?\"\n"); Turbo „C‟ 换页 \r { 回车 ‘A’-------’\101’-------’\x41’--------65 屏幕显示:= ‘\376’ printf(“Y\b=\n”); -----------’’ \f ‘\x61’ -----------’a’ < printf("\\C } 响铃 Program\\\n"); 打印机输出:¥ \a \\ 反斜线 ‘\60’ -----------’0’ ‘\483’ ----------() printf("Turbo \'C\'"); \„ \“ 单引号 双引号 }
\ddd 3位8进制数代表的字符 \xhh 2位16进制数代表的字符
<
specialchar.c
字符串常量
• 定义:用双引号(“”)括起来的字符序列 • 存储:每个字符串尾自动加一个 ‘\0’ 作为字 符串结束标志
例 字符串“hello”在内存中
例 空串 “” \0
h e
l
l
o
\0
• 字符常量与字符串常量不同 例: “a” a \0 例 ‘a‟ a
• 占字节数随机器不同而不同,一般占一个机器字
实型变量
sizeof_1.c
字符型变量
• 字符变量存放字符ASCII码 • char与int数据间可进行算术运算
例 a=„D‟; x=„A‟+5; s=„!‟+„G‟ /* a=68; */ /* x=65+5; */ /* s=33+71; */
printf和scanf函数的一般使用
– (1)printf( )函数
•
printf( )函数的功能是按指定的输 出格式把相应的参数值在标准输出设备 (通常是终端)上显示出来。
表2-6printf( )中常用的转换说明及其作用
转 换 说 明 %d %f %c %s %o %x %% 输 出 形 式 十进制int型 十进制double型 单个字符 字符串 无符号八进制数 无符号十六进制数 %本身 应 用 例 子 printf("sum=%d\ n",sum); printf("a=%f\ n", a); printf(“It is %c\ n",c); printf("**%s**\ n",s); printf("Oct=%o\ n",oct); printf("Hex=%x\ n",hex); printf("a%% b=%d\ n",d); 输 出 示 例 sum=2008 a=6.280000 It is M **Hello! ** Oct=176 Hex=96AF a%b=5
(signed)int
(signed)short
16
16 32 16 16 32 32
(signed)long unsigned int 无 unsigned short
有 有 unsigned long float double
实 型
64
字 有 8 char 符 8 unsigned char 型 无 说明:数据类型所占字节数随机器硬件不同而不同,上表以IBM PC机为例:
d,i,o,u,x,X d,i,o,u,x,X d,i,o,u,x,X d,i,o,u,x,X a,A,e,E,f,g,G
第2章 基本数据类型
●基本数据类型的特征 ●数据常量 ●数据类型转换 ●数据的控制台输入与输出
引入新课
#include “stdio.h” ? main( ) warning C4305: '=' : truncation { float a,b,area; from 'const double ' to 'float ' a=1.4; b=3.5; area=a*b; printf("a=%f,b=%f,area=%f\n" ,a,b,area); }