你必须知道的495个C语言问题

资源类型: 电子书 语言类型: 编程与开发 发布时间: 2016-07-01 13:54:49 解压或提取密码: 49jc

更新时间:2016-07-04 18:56:22 发布者:ykswz(ykswz) 游客免费下载 0

版本: V1.0
适用平台:window,linux,mac
格式:PDF
资源大小:18.8MB

爱好编程的朋友们,来看看这个编程电子书,是一本关于c++方面的电子书,,全方面细致的为大家讲解了这方面的编程内容,《你必须知道的495个C语言问题》结构清晰,讲解透彻,是各高校相关专业C语言课程很好的教学参考书,也是各层次C程序员的优秀实践指南。全球C语言程序员集体智慧的结晶;Amazon全五星图书;权威解答495个最常遇到的C语言问题。C是一门简洁精妙的语言,掌握基本语法容易,真正能够自如运用,就不那么简单了。你难免会遇到各种各样的问题,有些可能让你百思不得其解,甚至翻遍图书馆,也找不到问题的答案。《你必须知道的495个C语言问题》的出版填补了这一空白。许多知识点的阐述都是其他资料中所没有的,弥足珍贵。涵盖C99标准。,总的来说,这还是非常值得大家好好看看的一本电子书,可以学习好很多作者的心得以及经验之谈。
电子书的清晰程度截图如下,限于分辨率,缩小截图,下载阅读更加清晰

1.png《你必须知道的495个C语言问题》结构清晰,讲解透彻,是各高校相关专业C语言课程很好的教学参考书,也是各层次C程序员的优秀实践指南。全球C语言程序员集体智慧的结晶;Amazon全五星图书;权威解答495个最常遇到的C语言问题。C是一门简洁精妙的语言,掌握基本语法容易,真正能够自如运用,就不那么简单了。你难免会遇到各种各样的问题,有些可能让你百思不得其解,甚至翻遍图书馆,也找不到问题的答案。《你必须知道的495个C语言问题》的出版填补了这一空白。许多知识点的阐述都是其他资料中所没有的,弥足珍贵。涵盖C99标准。

目录
第1章 声明和初始化
基本类型
1.1 我该如何决定使用哪种整数类型?
1.2 为什么不精确定义标准类型的大小?
1.3 因为C语言没有精确定义类型的大小,所以我一般都用typedef定义int16和int32。然后根据实际的机器环境把它们定义为int、short、long等类型。这样看来,所有的问题都解决了,是吗?
1.4 新的64位机上的64位类型是什么样的?
指针声明
1.5 这样的声明有什么问题?char p1, p2; 我在使用p2的时候报错了。
1.6 我想声明一个指针,并为它分配一些空间,但却不行。这样的代码有什么问题?char p; p=malloc(10);
声明风格
1.7 怎样声明和定义全局变量和函数最好?
1.8 如何在C中实现不透明(抽象)数据类型?
1.9 如何生成“半全局变量”,就是那种只能被部分源文件中的部分函数访问的变量?
存储类型
1.10 同一个静态(static)函数或变量的所有声明都必须包含static存储类型吗?
1.11 extern在函数声明中是什么意思?
1.12 关键字auto到底有什么用途?
类型定义(typedef)
1.13 对于用户定义类型,typedef 和#define有什么区别?
1.14 我似乎不能成功定义一个链表。我试过typedef struct{char item; NODEPTR next;} NODEPTR; 但是编译器报了错误信息。难道在C语言中结构不能包含指向自己的指针吗?
1.15 如何定义一对相互引用的结构?
1.16 Struct{ } x1;和typedef struct{ } x2; 这两个声明有什么区别?
1.17 “typedef int(funcptr)();”是什么意思?
const 限定词
1.18 我有这样一组声明:typedef char charp; const charp p; 为什么是p而不是它指向的字符为const?
1.19 为什么不能像下面这样在初始式和数组维度值中使用const值?const int n=5; int a[n];
1.20 const char p、char const p和char const p有什么区别?
复杂的声明
1.21 怎样建立和理解非常复杂的声明?例如定义一个包含N个指向返回指向字符的指针的函数的指针的数组?
1.22 如何声明返回指向同类型函数的指针的函数?我在设计一个状态机,用函数表示每种状态,每个函数都会返回一个指向下一个状态的函数的指针。可我找不到任何方法来声明这样的函数——感觉我需要一个返回指针的函数,返回的指针指向的又是返回指针的函数,如此往复,以至无穷。
数组大小
1.23 能否声明和传入数组大小一致的局部数组,或者由其他参数指定大小的参数数组?
1.24 我在一个文件中定义了一个extern数组,然后在另一个文件中使用,为什么sizeof取不到数组的大小?
声明问题
1.25 函数只定义了一次,调用了一次,但编译器提示非法重声明了。
1.26 main的正确定义是什么?void main正确吗?
1.27 我的编译器总在报函数原型不匹配的错误,可我觉得没什么问题。这是为什么?
1.28 文件中的第一个声明就报出奇怪的语法错误,可我看没什么问题。这是为什么?
1.29 为什么我的编译器不允许我定义大数组,如double array[256][256]?
命名空间
1.30 如何判断哪些标识符可以使用,哪些被保留了?
初始化
1.31 对于没有显式初始化的变量的初始值可以作怎样的假定?如果一个全局变量初始值为“零”,它可否作为空指针或浮点零?
1.32 下面的代码为什么不能编译? intf(){char a[]=“Hello, world!”;}
1.33 下面的初始化有什么问题?编译器提示“invalid initializers ”或其他信息。char p=malloc(10);
1.34 char a[]= “string literal”;和char p=“string literal”; 初始化有什么区别?当我向p[i] 赋值的时候,我的程序崩溃了。
1.35 char a{[3]}= “abc”; 是否合法?
1.36 我总算弄清楚函数指针的声明方法了,但怎样才能初始化呢?
1.37 能够初始化联合吗?

第2章 结构、联合和枚举
结构声明
2.1 struct x1{ };和typedef struct{ }x2; 有什么不同?
2.2 这样的代码为什么不对?struct x{ }; x thestruct;
2.3 结构可以包含指向自己的指针吗?
2.4 在C语言中用什么方法实现抽象数据类型最好?
2.5 在C语言中是否有模拟继承等面向对象程序设计特性的好方法?
2.6 为什么声明extern f(struct x *p); 给我报了一个晦涩难懂的警告信息?
2.7 我遇到这样声明结构的代码:struct name {int namelen; char namestr[1];};然后又使用一些内存分配技巧使namestr数组用起来好像有多个元素,namelen记录了元素个数。它是怎样工作的?这样是合法的和可移植的吗?
2.8 我听说结构可以赋给变量也可以对函数传入和传出。为什么K&R1却明确说明不能这样做?
2.9 为什么不能用内建的==和!=操作符比较结构?
2.10 结构传递和返回是如何实现的?
2.11 如何向接受结构参数的函数传入常量值?怎样创建无名的中间的常量结构值?
2.12 怎样从/向数据文件读/写结构?
结构填充
2.13 为什么我的编译器在结构中留下了空洞?这导致空间浪费而且无法与外部数据文件进行“二进制”读写。能否关掉填充,或者控制结构域的对齐方式?
2.14 为什么sizeof返回的值大于结构大小的期望值,是不是尾部有填充?
2.15 如何确定域在结构中的字节偏移量?
2.16 怎样在运行时用名字访问结构中的域?
2.17 C语言中有和Pascal的with等价的语句吗?
2.18 既然数组名可以用作数组的基地址,为什么对结构不能这样?
2.19 程序运行正确,但退出时却“core dump ”(核心转储)了,怎么回事?
联合
2.20 结构和联合有什么区别?
2.21 有办法初始化联合吗?
2.22 有没有一种自动方法来跟踪联合的哪个域在使用?
枚举
2.23 枚举和一组预处理的#define有什么不同?
2.24 枚举可移植吗?
2.25 有什么显示枚举值符号的容易方法吗?
位域
2.26 一些结构声明中的这些冒号和数字是什么意思?
2.27 为什么人们那么喜欢用显式的掩码和位操作而不直接声明位域?

第3章 表达式
求值顺序
3.1 为什么这样的代码不行?a[i]= i++;
3.2 使用我的编译器,下面的代码int i= 7; printf("%d\n", i++ * i++); 打印出49。不管按什么顺序计算,难道不该是56吗?
3.3 对于代码int i=3; i=i++; 不同编译器给出不同的i值,有的为3,有的为4,哪个是正确的?
3.4 有这样一个巧妙的表达式:a^= b^= a^= b; 它不需要临时变量就可以交换a和b的值。
3.5 可否用显式括号来强制执行我所需要的计算顺序并控制相关的副作用?就算括号不行,操作符优先级是否能够控制计算顺序呢?
3.6 可是&&和||操作符呢?我看到过类似while((c = getchar()) != EOF && c != ‘\n


《你必须知道的495个C语言问题》一书于2009年由人民邮电出版社出版发行,该书以问答的形式组织内容,讨论了学习或使用C语言的过程中经常遇到的一些问题。书中列出了C用户经常问的400多个经典问题,涵盖了初始化、数组、指针、字符串、内存分配、库函数、C预处理器等各个方面的主题,并分别给出了解答,而且结合代码示例阐明要点。该书可作为各高校相关专业C语言课程的教学参考书,也是各层次C程序员的实践指南。

最新评论

封面图片

封面图片

资源解压或网盘提取密码: 49jc

简介

爱好编程的朋友们,来看看这个编程电子书,是一本关于c++方面的电子书,,全方面细致的为大家讲解了这方面的编程内容,《你必须知道的495个C语言问题》结构清晰,讲解透彻,是各高校相关专业C语言课程很好的教学参考书,也是各层次C程序员的优秀实践指南。全球C语言程序员集体智慧的结晶;Amazon全五星图书;权威解答495个最常遇到的C语言问题。C是一门简洁精妙的语言,掌握基本语法容易,真正能够自如运用,就不那么简单了。