你必须知道的495个C语言问题.[美]Steve Summit(带详细书签).pdf 高清版

上传者: kxjrzyk | 上传时间: 2021-08-09 21:38:41 | 文件大小: 133.91MB | 文件类型: PDF
本书以问答的形式组织内容,讨论了学习或使用C语言的过程中经常遇到的一些问题。书中列出了C用户经常问的400多个经典问题,涵盖了初始化、数组、指针、字符串、内存分配、库函数、C预处理器等各个方面的主题,并分别给出了解答,而且结合代码示例阐明要点。   本书结构清晰,讲解透彻,是各高校相关专业C语言课程很好的教学参考书,也是各层次C程序员的优秀实践指南。 第1章 声明和初始化 30 基本类型 30 1.1 我该如何决定使用哪种整数类型? 30 1.2 为什么不精确定义标准类型的大小? 31 1.3 因为C语言没有精确定义类型的大小,所以我一般都用typedef定义int16和int32。然后根据实际的机器环境把它们定义为int、short、long等类型。这样看来,所有的问题都解决了,是吗? 31 1.4 新的64位机上的64位类型是什么样的? 32 指针声明 32 1.5 这样的声明有什么问题?char *p1, p2; 我在使用p2的时候报错了。 32 1.6 我想声明一个指针,并为它分配一些空间,但却不行。这样的代码有什么问题?char *p; *p=malloc(10); 33 声明风格 33 1.7 怎样声明和定义全局变量和函数**好? 33 1.8 如何在C中实现不透明(抽象)数据类型? 34 1.9 如何生成“半全局变量”,就是那种只能被部分源文件中的部分函数访问的变量? 34 存储类型 35 1.10 同一个静态(static)函数或变量的所有声明都必须包含static存储类型吗? 35 1.11 extern在函数声明中是什么意思? 35 1.12 关键字auto到底有什么用途? 36 类型定义(typedef) 36 1.13 对于用户定义类型,typedef 和#define有什么区别? 36 1.14 我似乎不能成功定义一个链表。我试过typedef struct{char *item; NODEPTR next;}* NODEPTR; 但是编译器报了错误信息。难道在C语言中结构不能包含指向自己的指针吗? 36 1.15 如何定义一对相互引用的结构? 38 1.16 Struct{ } x1;和typedef struct{ } x2; 这两个声明有什么区别? 39 1.17 “typedef int(*funcptr)();”是什么意思? 39 const 限定词 39 1.18 我有这样一组声明:typedef char *charp; const charp p; 为什么是p而不是它指向的字符为const? 39 1.19 为什么不能像下面这样在初始式和数组维度值中使用const值?const int n=5; int a[n]; 39 1.20 const char *p、char const *p和char *const p有什么区别? 39 复杂的声明 40 1.21 怎样建立和理解非常复杂的声明?例如定义一个包含N个指向返回指向字符的指针的函数的指针的数组? 40 1.22 如何声明返回指向同类型函数的指针的函数?我在设计一个状态机,用函数表示每种状态,每个函数都会返回一个指向下一个状态的函数的指针。可我找不到任何方法来声明这样的函数——感觉我需要一个返回指针的函数,返回的指针指向的又是返回指针的函数……,如此往复,以到无穷。 41 数组大小 42 1.23 能否声明和传入数组大小一致的局部数组,或者由其他参数指定大小的参数数组? 42 1.24 我在一个文件中定义了一个extern数组,然后在另一个文件中使用,为什么sizeof取不到数组的大小? 42 声明问题 43 1.25 函数只定义了一次,调用了一次,但编译器提示非法重声明了。 43 *1.26 main的正确定义是什么?void main正确吗? 44 1.27 我的编译器总在报函数原型不匹配的错误,可我觉得没什么问题。这是为什么? 44 1.28 文件中的第一个声明就报出奇怪的语法错误,可我看没什么问题。这是为什么? 44 1.29 为什么我的编译器不允许我定义大数组,如double array[256][256]? 44 命名空间 44 1.30 如何判断哪些标识符可以使用,哪些被保留了? 44 初始化 47 1.31 对于没有显式初始化的变量的初始值可以作怎样的假定?如果一个全局变量初始值为“零”,它可否作为空指针或浮点零? 47 1.32 下面的代码为什么不能编译? intf(){char a[]="Hello, world!";} 47 *1.33 下面的初始化有什

文件下载

评论信息

免责申明

【只为小站】的资源来自网友分享,仅供学习研究,请务必在下载后24小时内给予删除,不得用于其他任何用途,否则后果自负。基于互联网的特殊性,【只为小站】 无法对用户传输的作品、信息、内容的权属或合法性、合规性、真实性、科学性、完整权、有效性等进行实质审查;无论 【只为小站】 经营者是否已进行审查,用户均应自行承担因其传输的作品、信息、内容而可能或已经产生的侵权或权属纠纷等法律责任。
本站所有资源不代表本站的观点或立场,基于网友分享,根据中国法律《信息网络传播权保护条例》第二十二条之规定,若资源存在侵权或相关问题请联系本站客服人员,zhiweidada#qq.com,请把#换成@,本站将给予最大的支持与配合,做到及时反馈和处理。关于更多版权及免责申明参见 版权及免责申明