C与指针以及常见问题.docVIP

  • 3
  • 0
  • 约2.63千字
  • 约 3页
  • 2017-02-09 发布于重庆
  • 举报
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表示指向字符类型的指针这种类型

文档评论(0)

1亿VIP精品文档

相关文档