C语言-基本数据类型、常量和变量

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

4. 字符串常量
字符串常量是用双引号括起来的0个或多个字符的序列。例如
"I am a student. " "x"
""
"0107328136"
// 空字符串
"I said,\"good morning!\"" // 含转义字符
(1)字符串常量的存储方式
字符串常量存储时,按字符串中字符从左到右的顺序依次占 用连续的存储单元,每个字符占1个字节,存放其对应的ASCII码。
#include <stdio.h>
void main() { printf("%d\n", 'B'); // 十进制
printf("%c\n", 'B');
printf("%c\n",66); printf("%c\n",'B'+32);
// 字符
printf("%d,%c,%d, %c\n", '\n', '\0', '\0', '\x41'); }
signed int
signed long
unsigned int
unsigned long
VC++ 6.0数据类型和取值范围
类型 长度(字节) 取值范围
char
[signed] char unsigned char int [signed] int unsigned [int] short int
变量在程序中的定义位置,决定了该变量的作用域。 (1)块级作用域 块是用函数体内花括号括起来的一个程序段。在块内定义的 变量具有块级作用域,其作用域从变量定义处到块的结束处(即 块的右花括号处)。 (2)函数级作用域 函数作用域是指在函数体开头定义的变量,它们在其定义的 函数内有效,即在整个函数内均可以引用。 (3)文件级作用域 在函数体外定义的变量具有文件级作用域。具有文件级作用 域的变量可在整个文件中访问,即从变量定义的位置开始到该源 程序文件结束。 (4)程序级作用域 程序级的作用域最大,在组成整个程序的所有文件中均有效。 当用extern将全局变量说明为外部变量后,可以使其具有程序级 作用域。
NULL
BELL BS FF NL(LF) CR HT VT \ ’ ”
0
7 8 12 10 13 9 11 92 44 34
ASCII代码值为0
报警铃响 退格符(backspace) 换页符 换行符 回车符 水平制表符(Tab) 垂直制表符 反斜杠 单撇号(单引号) 双撇号(双引号)
【例】字符常量的表示方法
2. 实数
C语言中,实数是近似表示的,且只能用十进制表示。 (1)定点格式,即由正负号、整数部分、十进制小数点和小数部 分组成。整数部分和小数部分都是由0~9组成的数字串。例如, 123.45,-256.701,.543,-25.,0.,.0,0.0等。(小数点必不可少) (2)指数格式,即在定点表示的基础上,后面再加上一个e或E后 跟一个1~3位整数组成。如 -1.234E18, 2.74e-02, 2.71828e0, .86e-3, 1e-2等。 书写指数格式的浮点数时,字母e或E前面必须有数字,可以没有 小数点,如.2e3,2.3e,2e3是正确的,而.e3,e-3等是错误的。同 时,e或E后面必须是正负整数,不能带小数点,如1.2e3.1、0.3e0.5等是错误的。 在计算机中,无论是定点表示还是浮点表示的实型常数都视为 double型的。如果有必要,可以用后缀f(F)来表示float型实数, 如2.6736F、12.56e-13f等。
C规定:长度 float ≤ double ≤ long double
(2)signed和unsigned规定了对数值符号的处理,只限于char型和
int型。
char short signed char signed short unsigned char unsigned short
int
long
【例】 #include <stdio.h> int a; // 全局变量 void main() { int b,c; // 函数级局部变量 a=1;b=2;c=3; a=a+1;b=b+1;c=c+b; ቤተ መጻሕፍቲ ባይዱ/ a=2 b=3 c=6 { int c; // 块级局部变量 c=b*3; // c=9 a=a+c; // a=11 printf("first:%d,%d,%d\n",a,b,c); // 11, 3, 9 } printf("second:%d,%d,%d\n",a,b,c); // 11, 3, 6 }
1
1 1 4 4 4 2
-128~127
-128~127 0~255 -2147483648~2147483647 -2147483648~2147483647 0~4294967295 -32768~32767
unsigned short [int]
long int [signed] long [int] unsigned long [int] float double long double
C编译系统还会自动在每个字符串常量的未尾追加一个零字符
NULL('\0')作为字符串的结束标识。因此,一个含有n个字符 的字符串常量要占用n+1个字节的存储空间。
例如,字符串常量 "I am a student" 含有14个字符(包括3个空格字符),它将占用15个字节的存 储单元。
I
a
m
a
s
t
u
d
e
n
t
\0
49 20 61 6d 20 61 20 73 74 75 64 65 6e 74 00
(2)字符串常量和字符常量的区别 ① 从表示方式上看,字符串常量是以双引号定界,而字符常 量则以单引号定界,如"A"是字符串常量,'A'则是字符常量。
② 每个字符常量只占1个字节的存储单元,而字符串常量则
3. 字符常量
字符常量是用单引号括住的单个字符。 (1)单引号表示法,用于可显示字符,直接用单引号(撇号) 将该字符括住,即表示字符常数。如 'A','a','5','$','?','+'等。 (2)转义字符表示法,用于不可显示字符,主要是那些控制字
符如换行符、回车符、换页符等,还有一些在C语言中有特殊含
义和用途的字符如单引号、双引号、反斜杠,只能用转义序列 表示。例如,‘\n’、‘\012’、‘\xa’均表示换行符,因为换行 符的ASCII代码八进制值12,十六进制值是a。
表2.3 常用的转义字符
转义字符 含义 十进制ASCII代码值 说明
\0
\a \b \f \n \r \t \v \\ \’ \”
2
4 4 4 4 8 8
0-65535
-2147483648~2147483647 -2147483648~2147483647 0~4294967295 -3.4×1038~3.4×1038 -1.7×10308~1.7×10308 -1.7×10308~1.7×10308
2.2 常量及其类型
常量是指在程序运行过程中,其值保持不变的量。常量 分为char、int、double和字符串型。其类型是由书写形式决 定的。
2. 变量定义的位置
变量定义的位置可以有三处:在函数体内定义的变量称为局部 变量,在函数的形式参数表中定义的变量称为形参,在函数外部 定义的变量称为全局变量。例如 #include <stdio.h> int color; // 全局变量 int value (int x,float y); // 形式参数 { int lower,upper,step; // 局部变量 char c,line; // 局部变量 float data,time; // 局部变量 unsigned long i,j,k; // 局部变量 …… }
表2-1 基本数据类型及对应关键字表 数据类型 关键字
字符型
整型 浮点(单精度)型
char
int float
双精度型
无值类型 逻辑型 复数型
double
void _bool _complex _imaginary
2.基本数据类型的存储方式和取值范围
不同类型的数据在计算机中的存储方式是不同的,即它们的 存储结构和所占的存储空间字节数并不一样,这与宿主计算机的 硬件特性有关。C 语言为了提高程序的可移植性,没有对数据类 型的长度和存储方式进行规定,而由不同类型的计算机上使用的 不同的C编译系统自行确定。VC++ 6.0规定: ① char型长度为1字节,按有符号二进制补码形式存储。 ② int型长度为4字节,按定点有符号二进制补码形式存储。 ③ float型长度为4字节,以浮点形式存储,阶码占8位(增码 表示),尾数占24位(归一化补码表示),6位有效数字精度,分 辨率约为1.1×10-38。
第2章 基本数据类型、常量和变量
数据类型是程序设计语言的重要概念,是
高级语言区别于低级语言的显著特征。不同的
数据类型在计算机内部的存储方式不同,允许
的运算不同,适用的领域也不同。
C语言允许使用的数据类型有以下三类:
(1)基本类型 不可再分的最基本的数据类型,包括 整型、浮点型,双精度型、字符型及无值类型等。基本类
三个属性: ① 变量分为不同的数据类型,数据类型决定了该变量存储
的数据的含义。
② 变量分为不同的存储类型,存储类型决定了变量在计算 机中的存储位置及其寿命(生命期)。
③ 变量在程序中的定义位置决定了该变量的作用域,即起
作用的范围。
1. 变量的定义
C语言规定,变量必须先定义后使用,变量的数据类型与变 量名本身无关。 变量定义一是定义变量的数据类型,二是定义变量的名称, 三是说明变量的存储类型,其一般格式为: [存储类型] 数据类型 变量清单; char ch1; static int i, j, k; short int si; float f1, f2; double balance, profit, loss; 变量的数据类型可以是字符型、整型、浮点型、双精度型等。
要占用一批连续的存储单元,其所占字节数为字符串长度加1。 ③ 字符型常量通常可存放在字符型变量中,而字符串常量则
必须存放在字符型数组中。
④ 字符型常量可以与整数混合运算,而字符串常量则不可以。
2.3 变量及其类型
变量是指那些在程序运行过程中其值可以改变的量。变量
代表着存储器中的一个存储单元。在 C 语言中,变量具有如下
1. 整型常数
在计算机中,整数是准确表示的。C语言可以识别十进制、 八 进制和十六进制的整数。 (1)十进制整数 十进制整数由正负号(+或-)后跟数字串组成,正号可以 省略不写,且开头的数字不能为0。如 1234,-23,+187,32767,5600,0 在整数后面加上后缀u或U则构成无符号整数,如 123u,5678U,70000u等。 在整数后面加上后缀l或L则构成长整数,如 -124783648l,1234567890L 在整数后面加上后缀ul或UL则构成无符号长整数,如 3456ul,1234567890ul
(2)八进制整数 以数字0打头,后跟0~7组成的数字串。例如: 0123表示八进制常数123,相当于十进制数83。 八进制整数可以加上后缀u(U),l(L)或ul(UL)分别构成八进制 的无符号数、长整数或无符号长整数。例如: 012345u、02765543102l、0345675026ul等。 (3)十六进制整数 以数字0和小写字母x(或大写字母X)打头,后跟0~9及A~ F(或a~f)组成的数字字母串。其中,A~F(或a~f)分别表示 十进制的10~15。例如: 0x2f是一个十六进制,相当于十进制的47。 若在十六进制数后面加上后缀u(U)、l(L)或ul(UL), 则分别构成十六进制的无符号数、长整数或无符号长整数。如: 0x89ad476bu, 0x9043fecd2l, 0x98bfd5ca7ul
型通常代表单个数据。
(2)构造类型 由已知的基本类型通过一定的构造方 法构造出来的类型,包括数组、结构体、联合体、枚举类 型等。构造类型通常代表一批数据。 (3)指针类型 指针可以直接指向内存地址,访问效
率高,用于构造各种形式的动态或递归数据结构,如链表、
树等。
2.1 基本数据类型
1.基本数据类型及其关键字
④ double型长度为8字节,存储方式与float基本相同,阶码
占11位,尾数占53位,15位有效数字精度,分辨率约为2.2×10-308。
3. 类型修饰符
(1)short和long可以提供不同的数据长度以满足实际使用的需要。
C规定:长度 short int ≤ int ≤ long int VC++ 6.0 VC++ 6.0 16bit 32bit 32bit 64bit 32 bit 64bit
相关文档
最新文档