5.c语言丰富的数据类型,具有丰富的数据类型是C语言的一个特色数据类型丰富意电子教案...

具有丰富的数据类型是C语言的一个特色数据类型丰富意电子教案

具有丰富的数据类型是C语言的一个特色数据类型丰富意电子教案 1第三章数据类型、运算符与表达式 1、数据类型具有丰富的数据类型是C C语言的一个特色。 数据类型丰富意味着对现实世界的描述能力强。 2?2.1数据类型数据类型总表C C数据类型基本类型构造类型指针类型空类型void定义类型typedef字符类型char枚举类型enum整整型实型单精度型float双精度型double数组结构体struct共用体union短整型short长整型long整型int数据类型决定1.数据占内存字节数2.数据取值范围3.其上可进行的操作 31、基本类型有符号整形int、short int、long int无符号整形:unsigned int、unsigned shortint、unsigned longint字符型char实型单精度float和双精度double枚举类型enum 2、构造类型数组类型结构类型struct共用体union 3、指针类型 4、空类型void4?2.2常量与变量标识符?定义用来标识变量、常量、函数等的字符序列?组成只能由字母、数字、下划线组成,且第一个字母必须是字母或下划线大小写敏感不能使用关键字?长度最长32个字符?命名原则见名知意不宜混淆如l与I,o与0例:判断下列标识符号合法性sum SumM.D.John dayDate3days student_name#33lotus_1_2_3char ab_above-above$123M.D.John3days#33char$123ab-above6?整形常量十进制如 234、- 678、0八进制以0开头如 012、 0123、-013十六进制以0x开头如0x 12、0x2f?实形常量0. 123、. 123、123. 0、123e 3、123E3(注意123e3错)?字符形常量例如a3$*转义字符n表示换行符t表示换跳格符ddd1-3位8进制数所表示的字符xhh1-2位16进制数所表示的字符、b?等等。 7例例1char a;a=?B?;printf(“%c”,a);字符常量的值是该字符的ASCII码值ASCII:American StandardCode forInformation Interchange例如关于ASCII的示例。 8main()int i;char c1,c2;c1=a;c2=b;i=2;printf(%c%c%dn,c1,c2,c1);c1=65;printf(%c%dn,c1,c1);/*A65*/c1=c1+i;printf(%c%dn,c1,c1);/*C67*/9#define PI3.14159(举例)?字符串常量注意字符串的形式。 例如How areyou?的存放格式。 a与a的存储以及采用printf()的输出上的区别。 10?字符常量与字符串常量不同?字符串常量?定义用双引号(“”)括起来的字符序列?存储每个字符串尾自动加一个00作为字符串结束标志h el lo0例字符串“hello”在内存中a a0例a?“a”例例空串“”0例例:char ch;ch=“A”;例例:char ch;ch=?A?; 113、变量的定义在程序中使用的变量先定义后引用。 例如main()float x;/*定义单精度实型变量x*/int i;/*定义整形变量i*/x=3.6;/*引用变量x*/i=3;/*引用变量i*/定义性说明命名、指定类型、分配空间、赋初值(可选)12引用性说明的格式extern类型名变量名;main()int i,j=0;/*列举赋初值上的问题*/extern int k;k=99;intk; 134、C语言中的运算符和表达式1)、运算符(共44个)2)、表达式表达式的定义例如a+b*c、ab、a、a= 10、6算术运算符+、-、*、/、%6/ 5、6/5. 0、-7/ 4、7/- 4、6% 5、5%6-7%4=- 3、7%-4=3符号与被除数的符号相同。 14运算符的优先级和结合规则(参见附录III)强制类型转换运算符int a=4;double x,y;x=(double)a;a=(int)(x+y);/*注意a=(int)x+y不同*/赋值运算符与赋值表达式C语言中常用的赋值运算符“=”,例如a=b是一个赋表达式。 15扩展的赋值运算符+、-例如a+,+a,a-,-a还有+=、-=、*=、/=、%=等等。 例如a*=b+216?自增、自减运算符+-作用使变量值加11或减11种类?前置+i,-i(先执行i i+1或i i-11,再使用i i值)?后置i+,i-(先使用i i值,再执行i i+1或i i-11)例j=3;k=+j;j=3;k=j+;j=3;printf(“%d”,+j);j=3;printf(“%d”,j+);a=3;b=5;c=(+a)*b;a=3;b=5;c=(a+)*b;/k=4,j=4/k=3,j=4/4/3/c=20,a=4/c=15,a=417?自增、自减运算符+-作用使变量值加11或减11种类?前置+i,-i(先执行i i+1或i i-11,再使用i i值)?后置i+,i-(先使用i i值,再执行i i+1或i i-11)说明?+-不能用于常量和表达式,如5+,(a+b)+?+-结合方向自右向左?优先级-+-*/%-+- (2) (3) (4)例-i+?-(i+)i=3;printf(“%d”,-i+);/-33例j+k;(j+)+k;例-i+i=3;printf(“%d”,-i+);18逗号运算符与逗号表达式例如a=3+6,b=a+1,a+b再如b=a=3+6,b=a+1,a+b注意表达式的值、a的值、b的值但b=(a=3+6,b=a+1,a+b)注意a的值、b的值注意表达式有自己的类型,即计算结果的类型。 例如3int a,b;char ch;ch=(a=3+6,b=a+1,a+b,a);19例如4#includestdio.hmain()int a,b,x;x=(a=2+1,b=a+1,a+b);printf(n x=%d,x);x=a=2+1,b=a+1,a+b;printf(n x=%d,x); 205、数据类型的转换 1、类型的自动转换在表达式中,遇到多种类型的混合运算总是将其它类型转换为表达式中宽度最高的那一个类型。 intunsigned intlongunsigned longfloatdouble表达式中的char、short(unsigned short除外)都无条件地转换为int。 赋值类型的自动转换赋值号右边的类型转换为左边的类型。 212、类型的强制转换格式(类型名)(表达式)例如5main()int a,b,x;float f;x=(a=2+1,b=a+1,a+b);printf(n x=%d,x);x=a=2+1,b=a+1,a+b;printf(n x=%d,x);f=x;printf(n f=%f%f%d,(float)x,f,x);printf(“%dn”,(int)f%2);/*对f进行强制转换*/22注意表达式中参与计算的常量或变量类型的转换是临时的,其原类型和值均不变,如上例5中X的值。 当把数据长度长的存入长度短的变量时,将截去超长的部分,有可能造成数据精度降低。 类型转换将占用系统的时间,过多的转换将影响程序的运行效率。 作业 3、 6、 7、 9、 10、12。 内容仅供参考

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值