1.2 C语言的基本数据类型
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
PART 2 常量
在程序执行过程中,其值不发生改变的量称常量。常量有直接常量和符号 常量两种方式。
直接常量:能够直接从字面看出数值的常量成为直接常量。
整型常量: 100,125,2, -10,0,0xab 实型常量:2.14 , 0.125,-2.789 字符型常量:‘a’,‘b’,‘2’ 字符串常量: “a”, “ab”,“sunday”
*常用的ASCII码:数字0对应代号48,大写字母A对应代号65,小写字母a对应代号97。
【例】对字符型数据进行加减操作。
#include<stdio.h>
int main()
{
char c1='a',c2='b',z;
int x=0,y=0;
x=c1+c2;
y=c1+1;
z=c1-32;
printf("c1和c2的ASCII值分别为: %d,%d\n",c1,c2);
例如: 122.456可以表示为: 122.456e0, 12.3456e1, 1.23456e2, 0.123456e3, 0.0123456e4, 0.00123456e
其中的1.23456e3称为“规范化的指数形式”
【例】某商场的衣服元旦搞促销活动,小红用八八折买了一件羽绒服,羽绒
服原价240元,请问小红买的这件衣服比原价便宜了多少钱?
长度 2字节 2字节
数的范围 0~65535 即0~(216-1) -32768~32767 即-215~(215-1)
【例】在一个笼子里同时养着一些鸡和兔子,你想了解有多少只鸡和多少只兔 子。主人对你说:我只告诉你鸡和兔子的总头数是16和它们的总脚数是40。根 据这些信息,你能不能自己计算有多少只鸡和多少只兔子?
• int price; • int amount; • int price, amount;
英文分号不要忘记,分号 表示一句话的结束。
定义了一个变量,变量 名是price,变量类型是
int,初始值为0。
今后课件上的程序都只有main大括号里面的部分
1.2 变量定义的位置之争
编译器问题:C89和C99 C89规定,在任何执行语句之前,必须在块的开始处声明所有局部 变量;但在C99则没有这个限制,只要在首次使用之前声明变量即 可。C99的优点在于就近定义变量,代码可读性强。
上机演示: 如果为PI重新赋值,会?
PART 3 变量
1.1 变量的定义
变量是计算机语言中能储存计算结果或是值的抽象概念。变量存储在内存单元 中,变量必须“先定义,后使用”。 编译时,系统根据指定类型分配给变量一定的存储单元,变量所占用的内存单 元的第一个字节的地址就是变量的地址。
变量定义的一般形式:类型标识符 变量名[,变量名,...];
符号常量:用一个标识符来代表一个常量的符号称为符号常量。符号常量必 须在使用之前先定义。
#define 标识符 常量
宏定义命令:把标识符 定义为后面的常量。
【注意】: •习惯上符号常量的标识符用大写字母。 •一个#define命令只能定义一个符号常量,且用一行书写,不能用分号结 束。 •用一个标识符代表一个常量。符号常量的值在其作用域内不能改变,也不能 再被赋值。
变量中只能存放指定类型的数据。 程序运行过程中不能改变变量的类型。
C语言提供了如下的数据类型:
带符号整型(简称整型)
带符号整型 带符号短整型(简称短整型)
整型
带符号长整型(简称长整型) 无符号整型
无符号整型 无符号短整型
基本类型 浮点型
单精度型 无符号长整型 双精度型
来自百度文库
字符型
C语言数据类型 构造型 指针型
但为了代码的移植性建议大家按最严格的标准C89执行。
error C2065: ‘change' : undeclared identifier
1.3 变量的赋值和初始化
这一行定义了一个变量。变量名是price,数 据类型是int,初始值是0。
price=0是一个式子,这里的“=”是一个赋 值运算符,表示将“=”右边的值赋给左边的 变量。
return 0;
}
4.3 字符型 字符型变量用来存放字符数据的变量。
一个字符变量只能存放一个字符,字符在计算机中以ASCII码形式存放于存储单元; 所有编译系统都规定一个字符变量在内存中占一个字节; 一个字符变量既可以以字符形式输出,也可以以整数形式输出。
C语言允许字符数据与整数直接进行算术运算。
个变量时改变为另一个值。
• int i; //定义 • int i=9; //初始化 • i= 7; //赋值
PART 4 数据类型
C语言是一种有强制数据类型的语言, 所有的变量必须具有确定的数据类型。
数据类型决定了该类型的数据在计算机 内部所占的内存空间的大小、数据的表 示形式、数据的取值范围,以及可以进 行的运算。
C语言程序设计
第1章 C语言基础知识
2. C语言的基本数据类型
contents
PART 1 PART 2 PART 3 PART 4
标识符 常量 变量 数据类型
重点:基本的数据类型,整型,浮点型和字符型 难点:不同类型变量空间的分配
PART 1 标识符
标识符(Identifier)用来对变量名、函数名、标号和其他各种用户定义的对象命 名。
当赋值发生在定义变量的时候,就叫做变量的 初始化。虽然C语言并没有强制要求所有的变 量在定义时都要做初始化,但是所有的变量在 第一次被使用(出现在赋值运算符的右边或输 出)之前被应该赋值一次。
如果没有初 始化???
变量在内存中,如果没有赋值,那么内存中原本有什么值,这个变量就是什么值。 没有对变量进行初始化,就好像打开了一个房间但却没有清扫它,那么里面之前 的垃圾就都是你的了。
printf("x=%d,y=%d,c=%c\n",x,y,z);
return 0;
}
运行结果:
c1和c2的ASCII值分别为:
97,98
x=195,y=98,z=A
上机
1求长方形的面积和周长,长方形的长和宽要求从键盘输入,输入之前应给与正确 的提示。
2.输入一个字符进行加密,加密的规律是:将小写转换成小写,将小写转换成大 写,如果是其他字符都转换为‘0’.
∴ [-8]补 = 1111 1111 1111 1000 又∵ CPU采用小端模式 ∴ 变量i在计算机中的存储方式为:
课堂提问
1111 1000
i
1111 1111
有符号型与无符号型 有符号型与无符号型
以short int 为例:
类型 无符号短整型 有符号短整型
类型说明符 unsigned short (int) (signed) short (int)
数组型 结构型 共用型
枚举型
空类型
4.1 整型变量
整型变量是用于存储整数的,可以是有符号型、无符号型、长型、短型或 普通整型。
整型
有符号基本整型 (signed)int 有符号短整型 (signed)short (int ) 有符号长整型 (signed) long (int) 无符号基本整型 unsigned int 无符号短整型 unsigned short (int) 无符号长整型 unsigned long (int)
同类型的数据长度可能会不同。但ANSI/ISO 制定了以下几个原则:
1. sizeof(short)<=sizeof(int)
2. sizeof(int)<=sizeof(long) 3. short 至少应为16位(2字节)
sizeof(int)
4. long 至少应为32位(4字节)。
【例】整型变量的定义。 定义一个short型变量a:short a; 定义一个int型变量b:int b; 定义一个long型变量c:long c; 定义一个unsigned short型变量d:unsigned short d; 定义一个unsigned int型变量e:unsigned int e; 定义一个unsigned long型变量f:unsigned long f; 定义一个int型变量x,x的初始值为5:int x=5;
变量初始化的一般形式: 类型标识符 变量名1 = 初始值[,变量名1 = 初始值...];
• int price = 0; • int amount = 100; • int price = 0,amount = 100;
1.4 定义、初始化和赋值
变量的定义主要是为变量申请内存空间用。 变量的初始化主要为在申请到的内存后为这个变量赋初始值。 赋值不仅可以在变量初始化的时候为变量设置值,可以在以后使用这
上机演示
上机演示
int 类型变量有4个字节 [+8]补=0... 0 0000 1000
24个0
0000 1000 0000 0000 0000 0000 0000 0000
0X28ff44
小端模式: 低位字节在前, 高位字节在后
∵ short类型变量为2个字节,且 [-8]原 = 1000 0000 0000 1000
【问题分析】根据题意,可以设x代表鸡的数量,y代表兔子的数量,它们的总
头数为h,它们的总脚数为f,列出相应的方程:
x y 2x 4y
h
f
x y
h f
y 2h 2
运行结果: chicken=12 rabbit=4
#include <stdio.h>
int main()
THANKS
点数的格式。
类型 单精度型
类型说明符 长度 float 4字节
符号 1 bit
指数 尾数 8 bit 23 bit
双精度型
double 8字节 1 bit 11bit 52 bit
无论是单精度还是双精度,浮点数在内存存储中都以规范化的指数形式分三部分保存: 在字母e(或E)之前的小数部分中,小数点左边应有一位(且只能有一位)非零的数字。
注意:括号表示的内容是可选的。
短整型与长整型 短整型与长整型 整型变量在内存中都是以二进制补码的形式存放。
类型 基本型 短整型 长整型
类型说明符 int
short long
长度 4字节 2字节 4字节
数的范围 -231~231-1 -215~215-1 -231~231-1
说明:C标准中针对数据的长度没有明确规定,所以对于不同的编译器,
{ int h,f,x,y; h=16;
因为鸡和兔子的数量及它们的脚数都 是整数,所以将它们定义成整型变量
f=40;
y=(f-2* h)/2;
x=h-y;
printf("chicken=%d\n",x);
printf("rabbit=%d\n",y);
return 0;
}
4.2 浮点型
C 语言的浮点类型采纳了IEEE754 标准中所定义的单精度32 位浮点数和双精度 64 位浮
【问题分析】根据题意,设x代表衣服的原价,r代表折扣,m代表促销之后
比原价便宜的价格,列出相应的方程: m x x * r
#include<stdio.h>
int main() {
将商品价格,折扣都定义成浮点型变量
float x,r,m;
x=240;
r=0.88;
m=x-x*r;
printf("该商品便宜了:%f\n",m);
标识符应遵循以下原则: 标识符只能由字母、数字和下划线组成,数字不可以出现在第一个位置上; C语言大小写敏感; C语言的关键字不可以用做标识符; 标识符应该“见名知意”。
【例】下面列举了一组合法的标识符和一组不合法的标识符。 合法的标识符: sum、average、_total、Class、day、month、Student_name、t1、 price 不合法的标识符:Li-si、Student’s、263.com、$31、#k33、2d12