1.计算机科学概论计算机科学概论2.计算机数学基础高等数学线性代数概率论与数理统计离散数学及其应用离散数学教程(北大版)什么是数学具体数学:计算机科学基础3.C语言C primer plusThe C programming languageC和指针C专家教程C陷阱与缺陷c语言解惑C标准库你必须知道...
分类:
其他好文 时间:
2015-12-11 22:22:45
阅读次数:
201
在C/C++中,数组名相当于一个指针,指向数组的首地址。这里“相当于”不代表等于,数组名和指针还是有很多区别的,这个在《C陷阱与缺陷》里有详尽的讲述。而这里要说的是对于数组名取地址的这么一个操作。如果声明有如下数组:int arr[5];那么,&arr这个操作得到了什么值呢?如果简单的认为arr就是...
分类:
编程语言 时间:
2015-10-07 01:04:00
阅读次数:
370
《C陷阱与缺陷》是由Andrew Koenig所著,高巍译。Andrew Koenig是AT&T大规模程序研发部(前贝尔实验室)成员,不仅有着多年的C++开发,研究和教学经验,而且还亲身参与了C++的演化和变革,对C++的变化和发展起到重要的影响。
第一章 词法陷阱
编译器中负责将程序分解为一个一个符号的部分,一般称为“语法分析器”。
1.1 ...
分类:
其他好文 时间:
2015-08-04 11:30:58
阅读次数:
124
语言经典书:C:C程序设计语言(K&R)->C和指针->C专家编程->C陷阱与缺陷->你必须知道的495个C语言问题C++: C++ primer ->effective C++->深度探索C++对象模型->stl源码分析->C++必知必会java:java编程思想->java并发编程->深入理解J...
分类:
其他好文 时间:
2015-06-07 09:28:05
阅读次数:
125
单引号本质代表引用一个数字,而双引号本质上代表一个指针。
printf(‘\n’)在当今大多数编译器非法。
a+++++b的解法:
这种写法应当有一个最合理的解释:
a++ + ++b
但是编译器执行的是大嘴编译法,对于编译器至少看上去应当为:(((a++) ++) +b),但是一个常量不允许++操作,
所以这个语句反而成为了非法语句。
...
分类:
其他好文 时间:
2015-04-28 18:25:37
阅读次数:
120
1. = 不同于 ==
2. & 和 | 不同于 && 和 ||
3. 编译器将程序分解成符号的方法是,从左到右一个一个读,直到读入的字符组成的字符串已不在可能组成一个有意义的符号,贪心的处理程序。如a --- b编译器就会认为是 a-- - b,而不是认为a - --b。
4. 整数常量,如果一个整型常量第一个字符是0,那么该变量会被认为是8进制数。
5. 单引号引起的一个字符实际上代...
分类:
其他好文 时间:
2015-04-27 16:50:15
阅读次数:
150
C陷阱与缺陷
1. typedef用法:
①
定义一种类型别名,而不是简单的宏替换:
char *pa,pb;(注意:pb并没有定义为指针,虽然你可能想这么定义它)
typedef char* PCHAR
PCHAR pa, pb;
② 用在旧的C代码中,帮助struct。以前的代码中,声明struct新对象时,必须带上struct,即形式为:struc结构名对象名,如...
分类:
其他好文 时间:
2015-02-08 15:29:13
阅读次数:
195
Objective-C是一个强大而且非常有用的语言,但是同样也是有一点危险的。这次主题是受到一篇有关C++陷阱的文章启发,来聊聊Objective-C和Cocoa中的陷阱。
简介
我将和Horstmann使用同样的定义:陷阱是能够编译、链接、运行,但却不会按你所预期地去执行的代码。他提供了一个例子,这段代码在Objective-C中和在C++中同样都是有问题的:
if (-0...
分类:
其他好文 时间:
2015-01-28 11:19:46
阅读次数:
303