c语言学习笔记(结合教程《c和指针》)

c语言学习笔记(结合教程《c和指针》)

ID:37152053

大小:104.00 KB

页数:12页

时间:2019-05-19

c语言学习笔记(结合教程《c和指针》)_第1页
c语言学习笔记(结合教程《c和指针》)_第2页
c语言学习笔记(结合教程《c和指针》)_第3页
c语言学习笔记(结合教程《c和指针》)_第4页
c语言学习笔记(结合教程《c和指针》)_第5页
资源描述:

《c语言学习笔记(结合教程《c和指针》)》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库

1、1.基本类型的赋值,转换问题。[(1)见p80;](1)c中是不是也和Java一样,存在隐式转换和强制转换?有区别吗?有区别。C中的隐式转换就是“整型提升”。C中的“整型提升”仅指:表达式中的操作数类型<=int的情况下(short和char),提升到int型。(注意:是表达式中的char和short在使用之前被转换为int。)>=int型的类型的提升,被称为寻常算术转换:寻常转换应该遵循:int–unsignedint–longint–unsignedlongint–float–double–longdouble由小到大的转换规则:一个操作数类型相对另一个操作数类型排名较低(较小),

2、则自动转换为相对较大的类型。(数据转换按数据存储长度增长的方向进行。)寻常算术转换和强制转换均为“算术转换”。寻常算术转换侧重于自动转换到相对较高的类型(如int-float),强制转换则可人为将其转换到其他类型(如long–int;int-double)。(记住:是先转换,再执行操作。)(记住:若某个操作符的各个操作数属于不同的类型,则除非其中一个操作数转换为另一个操作数类型,否则操作无法进行。问:该规则是否也针对赋值操作符“=”?不过等号右边的操作数(右值)自动转换成了左值的类型。)(注意:以上概念是针对算术操作符而言的。算术操作符就是+-*/%。问:那对于其它操作符呢?尤其是关系

3、操作符?)(2)不同类型操作数互相赋值时的精度变化情况:从int到float:精度可能会降低(有点例外)。Float只能保证6位有效数字的精度(浮点型以指数方式存储),虽然长度为4个字节。在32位平台上,通常int是4字节长度,最多表示到21亿多,而int型是“绝对精确”的,换句话说,就是int行最多可以保证10位十进制有效数字的精确度。而float只能保证6位有效数字的精确度,因此int到float的转换是可能丢失精度的。比如整数“1234567899”转换成float后,大约是:1.23457936乘10的9次方,也就是从第7位有效数字开始已经不准确了。double可以保证15位1

4、0进制有效数字的精度,所以从int到double不会有这个警告。(以上摘录自网络。)(3)左值与右值的注意点?  左值可以是变量或表达式,但必须能标识一个可以存储结果值的地点。1.位运算问题:(1)无符号数与有符号数左移,右移(<<,>>)的异同?它们的左移均为逻辑移位(补0);无符号数的右移也是逻辑移位(因为无符号数无须担心符号位问题);但有符号数的右移方式(逻辑移位还是算术移位)取决于编译器的类型(因而是不可移植的)。(2)逻辑移位与算术移位的区别?逻辑移位补0;算术移位(似乎只用于右移):左边移入的位根据有符号数符号位值决定是0还是1。2.各种数据类型的长度及注意点(1)整型:(

5、长整型至少应该和整型一样长,整型至少应该和短整型一样长。)char,signedchar,unsignedchar,shortint,unsignedshortint,int,unsignedint,longint,unsignedlongint其中,shortint至少16位,limits.h中说明了各种不同整型类型的特点:p30signedunsigned类型最小值最大值最大值字符SCHAR_MIN(-128)SCHAR_MAX(127)UCHAR_MAX(0xff)短整型SHRT_MIN(-32768)SHRT_MAX(32767)USHRT_MAX(0xffff)整型INT_M

6、IN(-2147483647-1)INT_MAX(2147483647)UINT_MAX(0xffffffff)长整型LONG_MIN(-2147483647L-1)LONG_MAX(2147483647L)ULONG_MAX(0xffffffffUL)整型字面值(整型字面值常量):可以是9种整型中的任何一种。(2)浮点类型:longdouble至少和double一样长,而double至少和float一样长。头文件float.h中有记录:MAXMINfloatFLT_MAX(3.402823466e+38F)FLT_MIN(1.175494351e-38F)doubleDBL_MAX(

7、1.7976931348623158e+308)DBL_MIN(2.2250738585072014e-308)longdoubleLDBL_MAX(DBL_MAX)或(1.189731495357231765e+4932L)LDBL_MIN(DBL_MIN)或(3.3621031431120935063e-4932L)注:浮点数字面值总是写成10进制的形式,必须有一个小数点或一个指数。(3)指针1.static,extern,const2.C

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。