标识符与数据类型
合集下载
C语言第2讲--数据的表示之基本数据类型

29
5.字符输出举例
例3.7(P51) main() 运行结果:A,B { char a,b; 65,66 a='a'; b='b'; /*或 b=98;可向字符变量赋以整数 */ a=a-32; b=b-32; printf("%c,%c\n%d,%d\n",a,b,a,b); } 注:C语言允许字符变量参与数值运算,即用字符 的ASCII 码参与运算。 大小写字母的ASCII 码相差32,因此运算后把小写 字母换成大写字母
结果:total1=300 total2=600
6
二、变量
变量以标识符命名。 变量的定义: 类型名 标识符1,标识符2,......标识符n; int a,b,c; float x,y,z;
注意事项:
/* a,b,c 为整型变量 */ /* x,y,z 为单精度型变量 */
(1)
(2)
变量必须先定义后使用
double a1,a2; a1,a2为double型变量名,每个 变量占8个字节的空间
20
3.浮点型数据的格式输出
#include <stdio.h> /*可省 */ void main() { float a=123.456; double b=1234.5678; printf(“a=%f\n”,a); printf(“b=%f\n”,b); }
输出结果: a=123.456001 b=1234.567800
21
4.printf( )函数中浮点型数据的输 出格式符(自阅)
%f :按小数形式输出实数(包括双精度),默认保留6位
小数。
%e(=%E):按指数形式输出实数(包括双精度) ,尾数 部分默认保留6位有效数字。 %.3f:按小数形式输出实数,保留3位小数。 %8.3f :按小数形式输出实数,保留3位小数,数据总宽
5.字符输出举例
例3.7(P51) main() 运行结果:A,B { char a,b; 65,66 a='a'; b='b'; /*或 b=98;可向字符变量赋以整数 */ a=a-32; b=b-32; printf("%c,%c\n%d,%d\n",a,b,a,b); } 注:C语言允许字符变量参与数值运算,即用字符 的ASCII 码参与运算。 大小写字母的ASCII 码相差32,因此运算后把小写 字母换成大写字母
结果:total1=300 total2=600
6
二、变量
变量以标识符命名。 变量的定义: 类型名 标识符1,标识符2,......标识符n; int a,b,c; float x,y,z;
注意事项:
/* a,b,c 为整型变量 */ /* x,y,z 为单精度型变量 */
(1)
(2)
变量必须先定义后使用
double a1,a2; a1,a2为double型变量名,每个 变量占8个字节的空间
20
3.浮点型数据的格式输出
#include <stdio.h> /*可省 */ void main() { float a=123.456; double b=1234.5678; printf(“a=%f\n”,a); printf(“b=%f\n”,b); }
输出结果: a=123.456001 b=1234.567800
21
4.printf( )函数中浮点型数据的输 出格式符(自阅)
%f :按小数形式输出实数(包括双精度),默认保留6位
小数。
%e(=%E):按指数形式输出实数(包括双精度) ,尾数 部分默认保留6位有效数字。 %.3f:按小数形式输出实数,保留3位小数。 %8.3f :按小数形式输出实数,保留3位小数,数据总宽
标识符and数据类型

标识符and数据类型⼀,标识符1.标识符⽤来给类,变量,包,⽅法等起名字的。
2.只能由字符,下滑线,美元符组成;这⾥的字符有⼤⼩写字母,中⽂字符,数字字符,但是符号只能有两个下划线和美元符。
3.不能由数字开头。
4.不能是java中的关键字。
note:建议见名知意,只使⽤英⽂字母和数字常见的命名规则a) 类:每个单词⾸字母要⼤写如class Student,class HelloWorldb)变量:第⼀个单词完全⼩写,后续更多单词⾸字母⼤写,如age,ageOfMyGirlfriend。
c)⽅法与变量规则⼀样如show(),getAge().d)包(其实就是⽂件夹,⽤于对类进⾏管理)全部⼩写,多级包⽤点隔开。
公司域名的反写cn.itcast (相当于两级⽂件夹:cn\itcast)com.itheima (相当于两级⽂件夹:com\itheima)⼆,数据类型分为基本类型和引⽤类型1,基本类型(8种):byte(1个字节),short(2个字节),int(4个字节),long(8个字节),float(4个字节),double(8个字节),char(字符型2个字节),boolean(1个字节)。
2,引⽤类型(除了基本的都算引⽤类型)有字符串,数组,类,接⼝,Lambda等。
note:3.整数类型有4种,默认为int类型4.浮点数类型有2种,默认为double类型5.定义⼀个long型整数,在数值后⾯⽤字母L作为后缀(⼤⼩写都可以建议⽤⼤写)520000000L6.定义⼀个float类型数据,在数值后⾯⽤字母F作为后缀(⼤⼩写均可建议⽤⼤写)3.14F7.字符char类型是可以包含中⽂的。
第三章标识符 关键字和数据类型

注:系统自动引入ng包,因此不需要再使用import语句引入该包
高级循环控制
嵌套式循环 格式:
for (表达式1;表达式2;表达式3) { for(表达式1;表达式2;表达式3) {若干语句 } }
for(int a=1;a<=4;a++) { for(int b=1;b<a;b++) { System.out.print(“*”); } System.out.println(); }
语句
Switch开关语句:适合多分支
格式: switch(表达式)
case 常量值1: 若干个语句 break; case 常量值2 : 若干个语句 break … … … case 常量值n: 若干个语句 break; default: 若干语句 }
{
a. switch语句中表达式的值必须是整 型或字符型 b. 常量值1到常量值 n必须也是整型 或字符型 c. 在同一个switch语句中,case后的 常量值必须互不相同 d. switch语句先计算表达式的值,若 值和某个case 后面的值相同,就 ; 执行该case里的语句直到break语 句为止。 e. 若没有值与表达式的值相同,则执 行default后面的语句。 f. default是可有可无的,若它不存 在,且所有的值都和表达式的值不 同,则switch语句就不会进行任何 处理。
语句
2)循环语句
for循环语句
a. b.
for (表达式1;表达式2;表达式3) c. { 若干语句 }
表达式1负责完成变量的初始化 表达式式2是值为boolean型的表达式, 称为循环条件 表达式3用来修整变量,改变循环条件
c语言第3章 数据类型及表达式

•除 当除号两边都是整型量时,叫做整除 整除, 当除号两边都是整型量时,叫做整除,运算结果只保 留整数部分。 留整数部分。 当除号任何一边有实型量时,运算结果是实数。 当除号任何一边有实型量时,运算结果是实数。 #include <stdio.h> main() main() { float div; div=1/2; printf( %f %f\ ,div); printf(“%f\n”,div); }
–规则: 规则: 规则
–见名知意 见名知意 –不宜混淆 不宜混淆
请指出下列标识符的正误: 请指出下列标识符的正误: main、count、!count、new、5abc、if、do、L_5、who、a123、 main、count、!count、new、5abc、if、do、L_5、who、a123、 _A、_123、c#、 _A、_123、c#、r-3、printf
h e l l o , w o r l d \0 • 注意: 注意: 字符常量和字符串常量是两个不同的概念 字符常量和字符串常量是两个不同的概念
char ch; ch=‘A ; ch= A’; char ch; ch=“A ;// ;//错误 ch= A”;//错误
A
\0
\0
3.7 字符型数据
3.7.3 字符型变量
3.3 常量
常量 • 定义:程序运行时值不能改变的量,即常数。 定义:程序运行时值不能改变的量,即常数。 • 分类: 分类: 符号常量: 符号常量:用标识符表示具体值 • 定义格式: 定义格式: • 一般用大写字母 直接常量: 直接常量:直接写出具体值 • 整型常量 • 实型常量 • 字符常量 • 字符串常量 常量值 #define 标识符 常量值
第三章 数据类型、运算符及表达式§31 字符及标识符

2关系运算符
比较两个操作数的大小的运算符,称为关系运算符。 关系运算的表达式,称为关系表达式。 例如, 3+5 > 7-4 关系表达式也有它的值。 如: 8 > 3, 该关系成立,因此关系表达式的值为真, 反之, 其值为假。 在C语言中,用数值1表示真,用数0表示假。 如,7 == 2,关系表达式为假,其值为0。 关系运算符的种类和表达式如下:
•
*C 语言提供的长整数的表示方法可以用来扩大整数的取值 范围. – 例如, 41l, 037l, 0x1fL 字母后面的l 或 L ,表示该数是长常数., 上面三个数,分别是十进制、八进制、十六进制长整数。 一个在整数中放不下的普通整数也被作为长整数,
因此, 把其后紧跟有 l 或 L 的整数叫显式长整数. • 在16位字长的机器上,长整数的位数是 32 位 ( 增长一倍 )。 故长十进制整数取值范围为 -2147483648 到 2147483647。 (2)整型变量: • 基本整型 int 如: int x; • 长整型 long 如: long int y; 或 long y ; • 无符号 unsugend 如: unsigend int z; 或 unsigend z。
• 关键字
具有固定意义的标识符,用户不能用作为自己的标识符, 它们共有32个,除符号常量外都用小写字母表示,就其用途 分五类。 (1) 数据类型 int char float double short ... (2) 存储类型 extern static register auto typedef (3) 控制语句 if else for while do .... (4) 运算符 sizeof (5) 符号常量 EOF BOF .... *它们的含义后面将会络续提到。 * 用户定义的标识符,不能和关键字同名。
04标识符、关键字、数据类型-zw

char c2 = '\n'; //代表换行符 代表换行符
2011-7-15
标识符、关键字、数据类型
17
Softeem Consultancy Service
特殊字符
转义符
\b \n \r \t \“ “ \‘ ‘ \\
2011-7-15
含义
退格( 退格(backspace) ) 换行 回车 制表符( ) 制表符(tab) 双引号 单引号 反斜杠
2011-7-15
标识符、关键字、数据类型
9
Softeem Consultancy Service
Java关键字、保留字列表 关键字、 关键字
abstract case default for native package static while volatile assert catch do goto new private strictfp void finally boolean char extends long null protected super throw true break class else if instanceof public switch throws false byte const final implements int return synchronized transient continue double float import interface short this try
2011-7-15
标识符、关键字、数据类型
6
Softeem Consultancy Service
标识符
标识符用作给变量、 标识符用作给变量、类、方法、包、接口,枚举等命 方法、 接口,枚举等命 名 可以以字母、下划线“_”、 “$” 开头 可以以 、 首字符外,还可以加上数字 首字符外 还可以加上 不能用关键字和保留字作为标识符 不能用 和 作为标识符 标识符没有长度限制 标识符 Java是大小写 是大小写敏感的,标识符也不例外 是大小写 的
2011-7-15
标识符、关键字、数据类型
17
Softeem Consultancy Service
特殊字符
转义符
\b \n \r \t \“ “ \‘ ‘ \\
2011-7-15
含义
退格( 退格(backspace) ) 换行 回车 制表符( ) 制表符(tab) 双引号 单引号 反斜杠
2011-7-15
标识符、关键字、数据类型
9
Softeem Consultancy Service
Java关键字、保留字列表 关键字、 关键字
abstract case default for native package static while volatile assert catch do goto new private strictfp void finally boolean char extends long null protected super throw true break class else if instanceof public switch throws false byte const final implements int return synchronized transient continue double float import interface short this try
2011-7-15
标识符、关键字、数据类型
6
Softeem Consultancy Service
标识符
标识符用作给变量、 标识符用作给变量、类、方法、包、接口,枚举等命 方法、 接口,枚举等命 名 可以以字母、下划线“_”、 “$” 开头 可以以 、 首字符外,还可以加上数字 首字符外 还可以加上 不能用关键字和保留字作为标识符 不能用 和 作为标识符 标识符没有长度限制 标识符 Java是大小写 是大小写敏感的,标识符也不例外 是大小写 的
计算机二级第2章 语法基础

16
字符串常量和字符常量的区别
字符常量'A'与字符串常量 是两回事: 字符常量 与字符串常量"A"是两回事: 与字符串常量 是两回事
1. 定界符不同:字符常量使用单引号,而字符串常量使 定界符不同:字符常量使用单引号,
用双引号; 用双引号;
2. 长度不同:字符常量的长度固定为 ,而字符串常量 长度不同:字符常量的长度固定为1,
2.
3.
13
程序举例
main( ) { char ch1,ch2; ch1='a'; ch2='b'; printf("ch1=%c,ch2=%c\ printf("ch1=%c,ch2=%c\n",ch1,ch2); printf("ch1=%d,ch2=%d\ printf("ch1=%d,ch2=%d\n",ch1,ch2); } 程序运行结果: 程序运行结果: ch1=A,ch2=b ch1+200=297 ch1+200=) ch1+256=353 ch1+256=a
程序运行结果: 程序运行结果: ch1=a,ch2=b ch1=97,ch2=98
main( ) { char ch1,ch2; ch1='a'; ch2='B'; /*字母的大小 写转换*/ printf("ch1=%c,ch2=%c\n",ch132,ch2+32); /*用字符形式输出一个大于256的数值*/ printf("ch1+200=%d\n", ch1+200); printf("ch1+200=%c\n", ch1+200); printf("ch1+256=%d\n", ch1+256); 14 printf("ch1+256=%c\n", ch1+256);}
java PPT 教学2

第二章
Java 基础
主要内容
Java标识符、数据类型 标识符、 标识符 常量与变量 Java运算符、表达式、优先级 运算符、 运算符 表达式、 Java示例 示例
一、Java符号 符号
Java语言采用 语言采用Unicode字符集,它 字符集, 语言采用 字符集 位数组成, 由16位数组成,而通常采用的 位数组成 ASCII码也被包含其中。 码也被包含其中。 码也被包含其中 Java符号分为:标识符、关键字、 符号分为: 符号分为 标识符、关键字、 运算符和分隔符。 运算符和分隔符。
注释
注释是为源程序增加必要的解释说明的内容, 注释是为源程序增加必要的解释说明的内容,其目 是为源程序增加必要的解释说明的内容 的是提高程序的可读性, 的是提高程序的可读性,书写注释是编写程序的良 好习惯。Java中有三种形式的注释 中有三种形式的注释: 好习惯。Java中有三种形式的注释:
// 注释部分
运算符和分隔符
1. 将如“+”符号称为运算符。Java语言 将如“ 符号称为运算符 符号称为运算符。 语言 中包含有算术运算符 逻辑运算符、 算术运算符、 中包含有算术运算符、逻辑运算符、 位运算符等。 位运算符等 2. 分隔符被用来区分 Java 源程序中的 基本成分(标识符、关键字、分隔符、 基本成分(标识符、关键字、分隔符、 运算符和常量),分隔符分为注释、 ),分隔符分为注释 运算符和常量),分隔符分为注释、 空白符和普通三种。
定义变量
定义变量有两个任务:一是定义变量的名称; 定义变量有两个任务:一是定义变量的名称; 二是定义这个变量的数据类型 语言中,所有的变量必须先定义后使用。 在 Java 语言中,所有的变量必须先定义后使用。 其格式为: 其格式为: 标识符1[=初值] 1[=初值 标识符2...] 2...]; 数据类型 标识符1[=初值],[标识符2...]; 如果变量定义的是基本数据类型, 如果变量定义的是基本数据类型,变量在声明时就 为其分配内存空间,否则, 为其分配内存空间,否则,还需要用 new 为声明 的变量分配空间 分配空间。 的变量分配空间。
Java 基础
主要内容
Java标识符、数据类型 标识符、 标识符 常量与变量 Java运算符、表达式、优先级 运算符、 运算符 表达式、 Java示例 示例
一、Java符号 符号
Java语言采用 语言采用Unicode字符集,它 字符集, 语言采用 字符集 位数组成, 由16位数组成,而通常采用的 位数组成 ASCII码也被包含其中。 码也被包含其中。 码也被包含其中 Java符号分为:标识符、关键字、 符号分为: 符号分为 标识符、关键字、 运算符和分隔符。 运算符和分隔符。
注释
注释是为源程序增加必要的解释说明的内容, 注释是为源程序增加必要的解释说明的内容,其目 是为源程序增加必要的解释说明的内容 的是提高程序的可读性, 的是提高程序的可读性,书写注释是编写程序的良 好习惯。Java中有三种形式的注释 中有三种形式的注释: 好习惯。Java中有三种形式的注释:
// 注释部分
运算符和分隔符
1. 将如“+”符号称为运算符。Java语言 将如“ 符号称为运算符 符号称为运算符。 语言 中包含有算术运算符 逻辑运算符、 算术运算符、 中包含有算术运算符、逻辑运算符、 位运算符等。 位运算符等 2. 分隔符被用来区分 Java 源程序中的 基本成分(标识符、关键字、分隔符、 基本成分(标识符、关键字、分隔符、 运算符和常量),分隔符分为注释、 ),分隔符分为注释 运算符和常量),分隔符分为注释、 空白符和普通三种。
定义变量
定义变量有两个任务:一是定义变量的名称; 定义变量有两个任务:一是定义变量的名称; 二是定义这个变量的数据类型 语言中,所有的变量必须先定义后使用。 在 Java 语言中,所有的变量必须先定义后使用。 其格式为: 其格式为: 标识符1[=初值] 1[=初值 标识符2...] 2...]; 数据类型 标识符1[=初值],[标识符2...]; 如果变量定义的是基本数据类型, 如果变量定义的是基本数据类型,变量在声明时就 为其分配内存空间,否则, 为其分配内存空间,否则,还需要用 new 为声明 的变量分配空间 分配空间。 的变量分配空间。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
Байду номын сангаас
char
enum long struct while
const
extern
continu e
float
defaul t
for short union
registe return switch typedef
变量
• 变量
– 程序要为每一项数据分配内存,通常使用变量 来存储数据。使用变量可以引用存储在内存中 的数据,并随时根据需要显示数据或执行数据 操纵。 – 使用变量时必须‚先定义,后使用‛
注意:字母e(或E)之前必须有数字,且e后面的指数必须为整数
类型类型与范围32
类型 float 位数 32位 有效位数 至少6位 取值范围 至少10-38~1038
double long double
64位 96位
至少10位 与double相同
至少10-308~10308 与double相同
• 与整型数据的存储方式不同,浮点型数据是按照指数形式 存储的。系统把一个浮点型数据分成小数部分和指数部分 ,分别存放。指数部分采用规范化的指数形式。 • 浮点数类型的表示1.23f
– 英文字母:大小写26个,共52个; – 阿拉伯数字:0-9共10个数字; – 下划线与分号: – 特殊符号:
• 运算符、分隔符
标识符
• 标识符定义
–用来标识变量名、符号常量名、函数名、类型 名、文件名等的有效字符序列;
• 标识符的规则
–标识符只能由字母、数字和下划线三种字符组 成,且第一个字符必须为字母或下划线; –C 语言中的标识符大小写敏感; –用户自定义的标识符不能与关键字同名;
C语言数据类型
数据类型方便让我们 对于不同的数据分类 处理
数据类型的关键字
• K&R关键字
– Int、Long、Short、Char、Float、double、 unsigned、
• C90关键字
– Signed、void
• C99关键字
– _Bool、_Complex、_Imaginary
Int类型
– Signed int;
整数类型的选择
• 使用最常用的int类型 • 优先考虑unsigned类型 • 当使用int类型不能表示一个数而使用long类 型可以做到时,使用long类型; • 在int为32位的系统中,如果需要16位的值 ,那么使用short类型可以节省存储空间;
整型数据32位机
– 定义后初始化变量
• variablename = value; • 例如:int num;num = 12;
给变量赋值,除了给一个直接的值以外,还可以通过计算获得。
变量的命名
• 编译系统将大写字母和小写字母认为是两 个不同的字符。 • 在选择变量名和其它标识符时,应注意做 到‚见名知意‛,即选有含意的英文单词 (或其缩写)作标识符。
0~65535
0~(232-1)
代码示例
#include <stdio.h> int main(void) { int i_number = 10; short s_number = 10; long l_number =10L; unsigned ui_number =10u; unsigned short us_number = 10U; unsigned long ul_number = 10UL; printf("int sizeof :%d\n",(sizeof i_number)); printf("short sizeof:%d\n",(sizeof s_number)); printf("long sizeof :%d\n",(sizeof l_number)); printf("unsigned int sizeof :%d\n",(sizeof ui_number)); printf("unsigned short sizeof :%d\n",(sizeof us_number)); printf("unsigned long sizeof :%d\n",(sizeof ul_number)); return 0; }
– unsigned int varNum; – varNum = 23123; – 加上unsigned前缀,正数的取值范围是原来的两倍 – Signed与unsigned修饰符可以与 int 和 float 数据类型 一起使用 – unsigned int 支持的范围是从 0 到 4,294,967,295
注意:每个要显示的值都必须对应自己的格式说明符,并且显示 值的类型要同说明符相匹配;
浮点数类型
• 浮点数类型分类
– 单精度(float型) – 双精度(double型) – 长双精度型(long double)
• 浮点数的表示形式
– 小数形式:0.123; – 指数形式:3e-3
• 规范化的指数形式:在字母e(或E)之前的小数部分中,小 数点左边应有一位(且只能有一位)非零的数字. • 如:123.456可以表示为1.23456e2
#include <stdio.h> int main(void) { float f_number = 4321.0f; double d_number = 1.234e3; long double ld_number = 1.234e-3L; printf("%f can be written %e,and float sizeof :%d\n",f_number,f_number,(sizeof f_number)); printf("%f can be written %e ,and double sizeof :%d\n",d_number,d_number,(sizeof d_number)); printf("%Lf can be written %Le,and long double sizeof :%d\n",ld_number,ld_number,(sizeof ld_number)); return 0; }
整数溢出问题
#include <stdio.h> #include <limits.h> int main(void) { int max = INT_MAX; int min = INT_MIN; unsigned int umax = UINT_MAX; printf("the max+1 is %d\n",max+1); printf("the min-1 is %d\n",min-1); printf("the umax +1 is %u\n",umax+1); return 0; }
类型 int short 占用内存字节数 4个字节 2个字节 数的范围
-231~231-1
-32768~32767
Long char
unsigned unsigned short unsigned long
4个字节 1个字节
4个字节 2个字节 4个字节
-231 ~ 231-1 (和 int 一样,不 常用) 0~(232-1)
注意:整数溢出程序不会报错,所以写程序时一定要小心,当达 到最大值时会从新从起点开始.(有符号数)最大值加一变成最小 值,最小值减一变成最大值。无符号整形减一为 0 (数据以补码 形式存储,符号位不参加取反等命令)
signed和unsigned类型
• signed最重要的是修改char数据类型 • unsigned 类型指定变量只能接受正值
• Int类型
– – – – – Int age = 21; Int age =21,score=90; Int age,score=90; #define MAX_AGE 200 Printf(‚%d‛,score);
• 整数类型的表示形式
– 十进制:没有前缀,0~9的数字组成; 12322、0、232 – 八进制:以0打头,由0~7的数字组成; 023、0101 – 十六进制:以0X或0x打头,由0~9、A~F或a~f组成 0x12=18(十进制)
嵌入式Linux系统开发技术
第4讲 标识符与数据类型
基本C语言的语法
• 标识符与关键字 • 变量与常量 • C语言数据类型
C语言数据存储
• 数据的存储使用变量或常量表示
内存
数据15 15 内存中的数据
通过变量,可以为内 存中的位置提供一个 有意义的名称
C语言的字符集
• C语言的基本符号可以分为4类
变量的声明与初始化
• 变量的声明 • 变量初始化的时机
– 定义时初始化变量
• Datatype variablename = value; • 例如:int num1,num2 = 12; 数据类型 变量名称;
– 先定义后使用(存储类型,默认为auto)+ 数据类型 +变量
int varName;
数值的显示
• 使用八进制显示:%o、%#o • 使用十六进制显示:%x、%#x、%#X
#include <stdio.h> int main(void) { int age = 20; printf("dec = %d;octal = %o;hex = %x\n",age,age,age); printf("dec = %d;octal = %#o;hex = %#x\n",age,age,age); return 0; }
– F或f:表示float类型 – L或l:表示long double类型;
浮点数的输出格式
char
enum long struct while
const
extern
continu e
float
defaul t
for short union
registe return switch typedef
变量
• 变量
– 程序要为每一项数据分配内存,通常使用变量 来存储数据。使用变量可以引用存储在内存中 的数据,并随时根据需要显示数据或执行数据 操纵。 – 使用变量时必须‚先定义,后使用‛
注意:字母e(或E)之前必须有数字,且e后面的指数必须为整数
类型类型与范围32
类型 float 位数 32位 有效位数 至少6位 取值范围 至少10-38~1038
double long double
64位 96位
至少10位 与double相同
至少10-308~10308 与double相同
• 与整型数据的存储方式不同,浮点型数据是按照指数形式 存储的。系统把一个浮点型数据分成小数部分和指数部分 ,分别存放。指数部分采用规范化的指数形式。 • 浮点数类型的表示1.23f
– 英文字母:大小写26个,共52个; – 阿拉伯数字:0-9共10个数字; – 下划线与分号: – 特殊符号:
• 运算符、分隔符
标识符
• 标识符定义
–用来标识变量名、符号常量名、函数名、类型 名、文件名等的有效字符序列;
• 标识符的规则
–标识符只能由字母、数字和下划线三种字符组 成,且第一个字符必须为字母或下划线; –C 语言中的标识符大小写敏感; –用户自定义的标识符不能与关键字同名;
C语言数据类型
数据类型方便让我们 对于不同的数据分类 处理
数据类型的关键字
• K&R关键字
– Int、Long、Short、Char、Float、double、 unsigned、
• C90关键字
– Signed、void
• C99关键字
– _Bool、_Complex、_Imaginary
Int类型
– Signed int;
整数类型的选择
• 使用最常用的int类型 • 优先考虑unsigned类型 • 当使用int类型不能表示一个数而使用long类 型可以做到时,使用long类型; • 在int为32位的系统中,如果需要16位的值 ,那么使用short类型可以节省存储空间;
整型数据32位机
– 定义后初始化变量
• variablename = value; • 例如:int num;num = 12;
给变量赋值,除了给一个直接的值以外,还可以通过计算获得。
变量的命名
• 编译系统将大写字母和小写字母认为是两 个不同的字符。 • 在选择变量名和其它标识符时,应注意做 到‚见名知意‛,即选有含意的英文单词 (或其缩写)作标识符。
0~65535
0~(232-1)
代码示例
#include <stdio.h> int main(void) { int i_number = 10; short s_number = 10; long l_number =10L; unsigned ui_number =10u; unsigned short us_number = 10U; unsigned long ul_number = 10UL; printf("int sizeof :%d\n",(sizeof i_number)); printf("short sizeof:%d\n",(sizeof s_number)); printf("long sizeof :%d\n",(sizeof l_number)); printf("unsigned int sizeof :%d\n",(sizeof ui_number)); printf("unsigned short sizeof :%d\n",(sizeof us_number)); printf("unsigned long sizeof :%d\n",(sizeof ul_number)); return 0; }
– unsigned int varNum; – varNum = 23123; – 加上unsigned前缀,正数的取值范围是原来的两倍 – Signed与unsigned修饰符可以与 int 和 float 数据类型 一起使用 – unsigned int 支持的范围是从 0 到 4,294,967,295
注意:每个要显示的值都必须对应自己的格式说明符,并且显示 值的类型要同说明符相匹配;
浮点数类型
• 浮点数类型分类
– 单精度(float型) – 双精度(double型) – 长双精度型(long double)
• 浮点数的表示形式
– 小数形式:0.123; – 指数形式:3e-3
• 规范化的指数形式:在字母e(或E)之前的小数部分中,小 数点左边应有一位(且只能有一位)非零的数字. • 如:123.456可以表示为1.23456e2
#include <stdio.h> int main(void) { float f_number = 4321.0f; double d_number = 1.234e3; long double ld_number = 1.234e-3L; printf("%f can be written %e,and float sizeof :%d\n",f_number,f_number,(sizeof f_number)); printf("%f can be written %e ,and double sizeof :%d\n",d_number,d_number,(sizeof d_number)); printf("%Lf can be written %Le,and long double sizeof :%d\n",ld_number,ld_number,(sizeof ld_number)); return 0; }
整数溢出问题
#include <stdio.h> #include <limits.h> int main(void) { int max = INT_MAX; int min = INT_MIN; unsigned int umax = UINT_MAX; printf("the max+1 is %d\n",max+1); printf("the min-1 is %d\n",min-1); printf("the umax +1 is %u\n",umax+1); return 0; }
类型 int short 占用内存字节数 4个字节 2个字节 数的范围
-231~231-1
-32768~32767
Long char
unsigned unsigned short unsigned long
4个字节 1个字节
4个字节 2个字节 4个字节
-231 ~ 231-1 (和 int 一样,不 常用) 0~(232-1)
注意:整数溢出程序不会报错,所以写程序时一定要小心,当达 到最大值时会从新从起点开始.(有符号数)最大值加一变成最小 值,最小值减一变成最大值。无符号整形减一为 0 (数据以补码 形式存储,符号位不参加取反等命令)
signed和unsigned类型
• signed最重要的是修改char数据类型 • unsigned 类型指定变量只能接受正值
• Int类型
– – – – – Int age = 21; Int age =21,score=90; Int age,score=90; #define MAX_AGE 200 Printf(‚%d‛,score);
• 整数类型的表示形式
– 十进制:没有前缀,0~9的数字组成; 12322、0、232 – 八进制:以0打头,由0~7的数字组成; 023、0101 – 十六进制:以0X或0x打头,由0~9、A~F或a~f组成 0x12=18(十进制)
嵌入式Linux系统开发技术
第4讲 标识符与数据类型
基本C语言的语法
• 标识符与关键字 • 变量与常量 • C语言数据类型
C语言数据存储
• 数据的存储使用变量或常量表示
内存
数据15 15 内存中的数据
通过变量,可以为内 存中的位置提供一个 有意义的名称
C语言的字符集
• C语言的基本符号可以分为4类
变量的声明与初始化
• 变量的声明 • 变量初始化的时机
– 定义时初始化变量
• Datatype variablename = value; • 例如:int num1,num2 = 12; 数据类型 变量名称;
– 先定义后使用(存储类型,默认为auto)+ 数据类型 +变量
int varName;
数值的显示
• 使用八进制显示:%o、%#o • 使用十六进制显示:%x、%#x、%#X
#include <stdio.h> int main(void) { int age = 20; printf("dec = %d;octal = %o;hex = %x\n",age,age,age); printf("dec = %d;octal = %#o;hex = %#x\n",age,age,age); return 0; }
– F或f:表示float类型 – L或l:表示long double类型;
浮点数的输出格式