- 1、本文档共3页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
C与指针以及常见问题,c面试常见问题,c语言常见问题集,c语言常见问题,c常见问题,电脑指针有问题,鼠标指针问题,win10鼠标指针有问题,空指针问题,c指针
环境:
? 预处理器? 解析 --------- 用来判断语句的意思,这个阶段产生绝大部分错误和警告,随后产生目标代码,但这是机
器指令的初步形式,后面再引入优化器对目标代码进行再一步处理,是的目标代码效率更高。
(2) Linux系统下的GCC中的编译与链接命令:
cc program.c -------- 同时实现编译与链接,并产生一个称为a.out的可执行程序,中间会产生一个名为program.o的目标文件,但是在链接过程中会删除。
cc main.c sort.c lookup.c ------ 编译并链接几个源文件,中间的目标文件不会被删除。
cc main.o lookup.o sort.c ------ 编译一个源文件,并与现存的目标文件链接在一起。
cc –c program.c ------ 编译单个C源文件,并产生一个目标文件(program.o),以后再进行连接.
cc –c main.c sort.c lookup.c ------ 编译几个源文件,并为每个文件产生一个目标文件,不链接。
cc main.o sort.o lookup.o ------- 链接几个目标文件
2. C语言中的注释:(小心程序结果判断题)
C中的注释是由/*开始,并以字符*/结束,之间的任何字符均将被注释掉,甚至可以跨行进行注释。
数据:
常见数据类型:整型、浮点型和复合类型(数组,结构体等)。
【注意】此本书将字符型数据归位为整型的一种变体,被看成是小整型。
整型家族:按照不同的方法分类,主要有:
按长度------- char, short int, int, long int
按是否有符号 ----- 有符号(signed)与无符号(unsigned), 默认是有符号的。
◆ 各整数类型之间的长度大小比较:标准时这样定义的:长整型至少应该和整型一样长,而整型至少应该和短整型一样长,即:
Char short int =int = long int
在头文件limits.h中规定了各种类型的取值范围。
移植性方面的考虑:只有当char类型的变量的值限制在signed char与unsigned char的交集范围之类时,才能具有最大的可移植性。
是否有符号与算术运算:(极易出错)
首先要明白在算术运算规则,在不考虑类型转化的基础上,有符号值之间的算术运算结果也一定是有符号的,同理无符号值之间的算术运算结果也一定是无符号的,因此:
If ( a – b 0) 与if ( a b )之间是存在差异的,前者若a与b均为无符号数,则比较结果恒大于0!
枚举类型:(被看成是整型类型的一种引申,因为这种类型的数据实际上是按照整型存储的)
结构:
enum Type { first, second, three, four}; ----------- 声明了一个类型为枚举类型,为Type.
这种类型的变量声明方式:
如:enum Type student;
枚举成员的初始化:主要有以下几种情况:
显式赋值:如enum Type { first=1, second=2, three=3, four=4};
隐式赋值:第一种情况是枚举成员均没显式地被赋值,此时这些类型实际上按照整型的方式存储,并且从0,一直增加给每个成员赋值。此时first=0,second=1,three=2,four=3; 第二种情况是枚举成员有某些成员被赋值,这时候如何确定各个成员的值呢?
举个简单的例子:
enum Type { first, second=2, three, four}; 这时候first=0, three=3, four=4
enum Type { first, second=, three=3, four}; 这时候first=1, second=2, four=4
【总结】从上面这个简单例子不难看出,成员中若某个值赋值了,那么紧跟它后面的成员则在它的基础上增1,依次类推,直至遇到下一个被赋值成员;若是枚举类型中的前几个成员没有赋值,则按照从0开始,依次递增的方法分别给它们赋值!
【延伸】
对枚举类型的理解:为什么会出现枚举类型呢,那是因为在现实世界中,某些对象只能在某个范围内取值,如人的性别只能在boy和girl中取值,星期只能在1到7中取值。基于此,我们设计了枚举类型,并且枚举类型的变量只能取自于枚举类型中的某个成员值!
应用举例:
输出为1.
2. typedef ---------- 为已有类型定义一个别名
(1) 常见用途:
◆ 定义一种类型的别名,特别是针对拥有复杂指针类型的地方,会显得十分省事。
typedef char* ptr ------------ 用ptr表示指向字符类型的指针这种类型
ptr
文档评论(0)