c语言数据类型_第1页
c语言数据类型_第2页
c语言数据类型_第3页
c语言数据类型_第4页
c语言数据类型_第5页
已阅读5页,还剩55页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、C C 语言根本语言根本main( ) float r, area ; r=5 ; area=3.14*r*r; printf (%fn , area) ; C信息类型信息类型数组类型数组类型结构体类型结构体类型共用体类型共用体类型枚举类型枚举类型指针类型指针类型组织类型组织类型11111000011111112.2.4 2.2.4 空类型空类型l关键内容关键内容:l常量常量l变量变量l规格库函数规格库函数l在运行程序的环节中值连结不变的量在运行程序的环节中值连结不变的量l1整型常量整型常量 l十进制十进制:09l八进制八进制:07,以以 0开头开头l十六进制十六进制:09,AFaf,以以 0

2、 x或或 0X 开头开头main()main()int a=0123;b=0 x123;int a=0123;b=0 x123;printf(“a=%d,b=%d”,a,b);printf(“a=%d,b=%d”,a,b); l整型常量的类型整型常量的类型:l依照值大小默认类型依照值大小默认类型.l整型常量背面加整型常量背面加l或或L,那么信任是那么信任是long int型型l 例似例似:123L、0L、432l、0 x100l十进制形式十进制形式 1.0 1. +12.0 -12.0 0.0指数形式指数形式 1e3 1.8e-3 -123E-6 -.1E-3l可视字符常量可视字符常量 l单引

3、号括起来的单个可视字符单引号括起来的单个可视字符l例似例似:a、A 、+ 、3、 等等 l转义字符常量转义字符常量l单引号括起来的单引号括起来的 与可视字符组合与可视字符组合,例似例似: 字符形式 功能 n 换行 t 横向跳格(即跳到下一个输出区-占 8 列) v 竖向跳格 b 退格(不换行) r 回车 f 走纸换页 反斜杠字符“” 单引号(撤号)字符 ddd l 到 3 位 8 进制数所代表的字符 xdd 1 到 2 位 16 进制数所代表的字符 字符变量的定义形式似下字符变量的定义形式似下: : char c1,c2 char c1,c2; 它示意它示意c1c1和和c2c2为字符型变量为字

4、符型变量, ,各能够放一个字符各能够放一个字符, ,所以能所以能够用下面语句对够用下面语句对c1c1、c2c2赋值赋值: : c1= c1=a a; c2= c2=b b; 一样以一个字节来存放一个字符一样以一个字节来存放一个字符, ,大概讲一个字符变量大概讲一个字符变量在内存中占一个字节在内存中占一个字节. .将一个字符常量放到一个字符变量中将一个字符常量放到一个字符变量中, ,现实上同时不是把该现实上同时不是把该字符自已放到内存单元中去字符自已放到内存单元中去, ,而是将该字符的相应的而是将该字符的相应的ASCIIASCII代码放到存储单元中代码放到存储单元中. .例似字符例似字符a a的

5、的ASCIIASCII代码代码为为97,97,b b为为98,98, c1 c2 c1 c2 97 98 97 98 01100001 01100010 01100001 01100010l用双引号括起的一个字符序列用双引号括起的一个字符序列l例似例似:ABC、123、a、 nt l nGood morningl字符串常量的长度字符串常量的长度 :l所见谅的字符个数所见谅的字符个数 l字符串常量的存储方式字符串常量的存储方式:l 所占存储单元数所占存储单元数:串长度串长度1例似例似:字符串字符串结束标记结束标记1. 1. 变量的有关概念变量的有关概念在程序运行环节中在程序运行环节中, ,其值改

6、变的信息其值改变的信息, ,称为变量称为变量, ,变量变量用标识符示意用标识符示意, ,称为变量名称为变量名. .变量必须变量必须“先定义后使用先定义后使用”系统为变量安排存储单元系统为变量安排存储单元, ,存储变量的值存储变量的值. . 编写程序时通过变量名来存、取变量值编写程序时通过变量名来存、取变量值. .a510变量值变量值为变量安排的为变量安排的存储单元存储单元变量名变量名例似例似: :有变量有变量a a它的值是它的值是510510变量定义的一样标准变量定义的一样标准: : 信息类型讲明符信息类型讲明符 变量列表;变量列表;例似例似:int i, j;:int i, j; long

7、k, m; long k, m; float x,y; float x,y; char ch1,ch2; char ch1,ch2;main()main()int a,b,c,d; int a,b,c,d; * * 指定指定a,b,c,da,b,c,d为整型变量为整型变量 * *unsigned u; unsigned u; * * 指定为无符号整型变量指定为无符号整型变量* * a=12;b=-24;u=10;a=12;b=-24;u=10;c=a+u;d=b+u;c=a+u;d=b+u;printf(a+u =%d b+u =%d,c,d);printf(a+u =%d b+u =%d,c

8、,d); 运行结论为运行结论为 a+u a+u b+u =-14 b+u =-14 能够看到差别种类的整型信息能够履行算术运算能够看到差别种类的整型信息能够履行算术运算. .在在本例中是本例中是intint型信息与型信息与unsigned intunsigned int型信息履行相加相型信息履行相加相减运算减运算. .l按运算类型分类按运算类型分类l 1. 算术运算符算术运算符 2. 关系运算符关系运算符 l 3. 逻辑运算符逻辑运算符 4. 位运算符位运算符 l 5. 赋值与赋值组合运算符赋值与赋值组合运算符 6. 自增自减运算自增自减运算符符l 7. 前提运算前提运算 8. 指针运算指针运

9、算l 9. 其它运算符其它运算符l按运算对象的数目分类按运算对象的数目分类l 单目运算单目运算l 双目运算双目运算l 三目运算三目运算l运算符(双目运算符单目运算符)运算符(双目运算符单目运算符)l + + 加法运算加法运算l - - 减法运算减法运算l * * 乘法运算乘法运算l 除法运算除法运算l % % 求余运算求余运算l优先级优先级: :* * % % 同级(高)同级(高),+ - ,+ - 同级(低)同级(低)l联合性联合性: :一样优先级运算符履行运算时的次序一样优先级运算符履行运算时的次序l 自左向右(标记为自左向右(标记为 )1.1.介入运算的对象根基上介入运算的对象根基上in

10、tint型型, ,结论截取为结论截取为intint型型 103 10311311310.03 10.03 113.113.12121.21.2105105* *3 310(510(5* *3)3)= 3= 3= 3.3333= 3.66667= 0= 0.5= 6= 0= 0= 1= 1= 1= 1= -1= -1= -1= -1注重注重:运算对象的信息类型对运算结论的作用运算对象的信息类型对运算结论的作用l运算符(双目运算符运算符(双目运算符 )l 大于大于 = = 大于等于大于等于l 小于小于 = = = =同级同级( (高高),!= =),!= =同级同级( (低低) )l关系运算的结论

11、应该为逻辑型关系运算的结论应该为逻辑型“真真”或或“假假”l C C语言中没有逻辑型语言中没有逻辑型, ,将逻辑型数值化操作将逻辑型数值化操作, ,l 用整型用整型1 1示意示意“真真”, ,用整型用整型0 0示意示意“假假”. .成站成站, , 结论为结论为 1 1不成站不成站, ,结论为结论为 0 0成站成站, , 结论为结论为 1 1不成站不成站, ,结论为结论为 0 0结论为结论为 1 1与上面等价与上面等价, ,结论为结论为 1 1等价于等价于(a-b)=1,(a-b)=1,结论为结论为 0 01. +和和 运算法只能用于变量运算法只能用于变量,不得用于常不得用于常量和表达式量和表达

12、式.似似: 5+ +, (a+b)+ +均为不合法均为不合法.几点注重几点注重: :2. +, ,的联合性为从右到左,而一样算术运算符为从左到右.似似: i+ : i+ 和和+ + +为同一优为同一优先级先级. . i+相当于(i+)例例: #includemain( ) int i=3,j; j=-i+; printf(i=%d,j=%dn,i,j);运行结论运行结论:i=4, j= -31. 要慎用要慎用+、 运算符运算符.对表达式(i+)+(i+)+(i+) ; 我们大概会信任应从左到右: 3+4+5=12例例: #include main( ) int i=3,j; j=(i+)+(i

13、+)+(i+); printf(i=%d,j=%dn,i,j); 现实运行结论现实运行结论:i=6, j=9 先对i履行3次自加, 结论i的值为6,接着三个i值相加为18.3+3+3=9 接着再把6赋给i值似果表达式j=(i+)+(i+)+(i+);改为: j=(+i)+(+i)+(+i);那么运行结论那么运行结论: i=6, j=18这是因为运算时是先取i的原值:32. 在表达式中,有的运算符为一个字符,有的为两个字符.一样地: 自左到右完大概多地将如果干字符组成一个运算符.似似: i+j, : i+j, 毕竟懂得为毕竟懂得为(i+)+j(i+)+j仍是仍是i+(+j)? i+(+j)? 例

14、例: #includemain( ) int i=3,j=3,m; m=i+j; printf(i=%d,j=%d,m=%dn,i,j,m);运行结论运行结论:i=4, j=3, m=6对语句m=i+j; 系统懂得为m=(i+)+j;3. 在函数调用时要注重指标的统计次序,printf(i=%d, i=%d, i, i+);似: int i=3;int j=3;printf(j=%d, j=%d, j+, j);输出结论输出结论:i=4, i=3;j=3, j=3;缘由缘由:指标的统计次序从右到左指标的统计次序从右到左.l x = 2; x = 2; x = x 2; x = x 2;例例:

15、a + = a =a: a + = a =aa a ( (设设a a12)12)又: a=5+(c=6) c=6, a=11 a=(b=4)+(c=6) b=4, c=6, a=10 a=(b=10) (c=2)b=10, c=2, a=5还可用复合赋值运算符作下列运算:环节: aa144. a =a a a=a a a=12 144= 132 a + = 132 a = a+(132) = 264推断推断e1 ?履行履行e2履行履行e3成站成站不成站不成站l sizeof (opr) sizeof (opr)求求opropr所占用的内存的字节数所占用的内存的字节数例例: in a, b;:

16、in a, b;a=3a=35, a 5, a 4; 4;b=(3b=(3* *5, a5, a* *4);4);结论结论: a=15 b=60如果:b=( (a=35, a 4), a+5); a+5b 即 20b. 3 5=15a a 4=60 (此刻a值仍未变) x=(a=3, 63) 赋值表达式, x的值18; x=a=3, 6 a 逗号表达式, x的值3. 逗号表达式关键用于某些语句中需一次统计多个表达式值的情况.似在循环语句中.摸索摸索: :如果有:int a ;a=(3*5, a*4);那么:a的值为几?答案答案: 不确定不确定注重注重: :例似例似: (double) a :

17、(double) a 将将a a变形为变形为doubledouble (int) (x+y) 将x+y变形为int(float) (5%3) 将5%3变形为float注注: : 括号不能省略括号不能省略. . 另: (int) (x+y)否那么: intx 会懂得为变量intx.如果写: (int)x+y,那么只会将x转成整型. C语言许可双精度、单精度、整型及字符信息之间混合运算 10+a+1.58765.1234 b是许可的.但有一个法那么: 先变形成同一类型,再统计.例例: 10+ a+i: 10+ a+i f d ef d e其中: i int f float d double e long 10+a: 转为int, 结论为int if: 转为double, 结论为double + : 转为doub

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论