C语言入门问题与结构详解

需积分: 13 0 下载量 193 浏览量 更新于2024-07-26 收藏 1.35MB PDF 举报
本文档是一份关于C语言的例题与问题集,由Steve Summit原创,朱群英和孙云进行翻译,修订版日期为2005年6月23日。它涵盖了C语言中的一些核心概念和常见问题,帮助读者理解和解决编程过程中可能遇到的问题。 1. **整数类型选择**:章节讨论了根据实际需求选择合适整数类型的重要性,比如要考虑性能、内存占用以及平台兼容性。例如,对于64位机器,理解64位类型(如long long)的特性和使用场景。 2. **全局变量和函数声明**:提供了关于如何有效地定义和声明全局变量、局部变量以及函数的建议,强调了extern关键字在函数声明中的作用,即让其他文件知道函数的存在。 3. **指针和链表**:针对链表结构的定义和使用进行了深入解析,解释了结构体中包含指向自身指针的限制,并探讨了如何正确地定义和操作链表。 4. **函数重定义问题**:处理了函数只有定义一次却被多次调用时出现的编译错误,提示读者检查函数定义的位置和重载规则。 5. **main()函数的规范**:明确了main()函数的正确写法,讨论了void main()的潜在问题和标准规定。 6. **变量初始化和假设**:讨论了未初始化变量的默认值,以及全局变量作为空指针或浮点零的可能情况,强调了初始化的重要性。 7. **字符串初始化和指针**:分析了代码如`char a[] = "Hello, world!"`无法编译的原因,以及`char *p = malloc(10)`可能导致的“非法初始化”错误,以及字符串字面量与动态分配内存的区别。 8. **结构、联合和枚举**:章节比较了`struct`声明的不同形式,解释了为何`struct x {}`与`typedef struct {} x2;`之间的差异,并讨论了结构能否包含指向自身的指针以及面向对象特性在C语言中的模拟方法。 9. **抽象数据类型实现**:提供了一些建议,阐述了如何在C语言中实现抽象数据类型的高效设计。 通过这份详尽的例题集,读者不仅能解决具体问题,还能加深对C语言基础语法的理解,提升编程技能。