![](https://img-blog.csdnimg.cn/20201014180756913.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
C/C++
文章平均质量分 80
orient
这个作者很懒,什么都没留下…
展开
-
《C陷阱与缺陷》读书笔记3
第三章 语义陷阱 3.1 指针与数组 C语言中只有一维数组,而且数组的大小必须在编译期就作为一个常数确定下来 。然而,C语言中数组的元素可以是任何类型的对象,当然也可以是另外一个数组。这样,要“仿真”出一个多维数组就不是一件难事。 对于一个数组原创 2011-07-22 11:14:26 · 432 阅读 · 0 评论 -
《C专家编程》读书笔记9
第九章 再论数组 9.1 什么时候数组与指针相同 声明本身还可以进一步分成3种情况: 外部声明(external array)的声明。 数组的定义(记住,定义是声明的一种特殊情况,它分配内存空间,并可能提供一个初原创 2011-08-08 10:39:27 · 375 阅读 · 0 评论 -
《C专家编程》读书笔记8
第八章 为什么程序员无法分清万圣节和圣诞节 8.1 Portsebie度量衡系统8.2 根据位模式构筑图形8.3 在等待时类型发生了变化 printf(“%d”, sizeof ‘A’); 输出原创 2011-08-05 10:26:31 · 474 阅读 · 0 评论 -
《C专家编程》读书笔记7
第七章 对内存的思考 7.1 Intel 80x86系列7.2 Intel 80x86内存模型以及它的工作原理7.3 虚拟内存7.4 Cache存储器7.5 数据段和堆原创 2011-08-04 10:35:15 · 665 阅读 · 0 评论 -
《C专家编程》读书笔记6
第六章运动的诗章:运行时数据结构 编程语言理论的经典对立之一就是代码和数据的区别。 学习运行时系统,主要有3个理由: 它有助于优化代码,获得最佳的效率。 有助于理解更高级的材料 当陷入麻原创 2011-08-03 11:01:23 · 735 阅读 · 0 评论 -
《C专家编程》读书笔记5
第五章 对链接的思考 5.1 函数库、链接和载入 绝大多数的编译器通常由多达六七个稍小的程序所组成,这些程序由一个叫做“编译器驱动器(compiler driver)的控制程序来调用。这些可以方便地从编译器中分离出来的单独程序包括:预处理器原创 2011-08-02 10:09:23 · 715 阅读 · 0 评论 -
《C专家编程》读书笔记4
第四章 令人震惊的事实:数组和指针并不相同 4.1 数组并非指针 extern int *x; extern int y[]; 4.2 我的代码为什么无法运行 文件1:原创 2011-07-30 11:23:32 · 462 阅读 · 0 评论 -
《C专家编程》读书笔记3
第三章 分析C语言的声明 3.1 只有编译器才会喜欢的语法 char (*j) [20];/*j是一个指向数组的指针,数组内有20个char元素*/ j = (char (*)[20]) malloc(20); 如果把星号两原创 2011-07-29 12:06:26 · 889 阅读 · 1 评论 -
《C陷阱与缺陷》读书笔记2
第二章 语法陷阱 2.1 理解函数声明 任何C变量的声明都由两部分组成:类型以及一组类似表达式的声明符(declarator)。 float *g(), (*h)(); 表示*g()与(*h)()是浮点表达式。因为()结合优先原创 2011-07-21 11:02:53 · 442 阅读 · 0 评论 -
《C陷阱与缺陷》读书笔记1
第一章 词法陷阱 1.1 =不同于== while ( c == ’ ‘ || c == ‘\t’ || c == ‘\n’ ) c=getc(f) 漏写= while ( c = ’ ‘ || c == ‘\t’ || c == ‘\n原创 2011-07-20 10:46:53 · 464 阅读 · 0 评论 -
《C专家编程》读书笔记2
第二章 这不是Bug,而是语言特性 2.1 这关语言特性何事,在Fortran里这就是Bug呀 一个‘L’的NUL用于结束一个ASCII字符串 两个‘L’的NULL用于表示什么也不指向(空指针) 2.2 多做之过 2.2.1原创 2011-07-28 11:46:08 · 469 阅读 · 0 评论 -
《C专家编程》读书笔记1
第一章 C:穿越时空的迷雾 1.1 C语言的史前阶段 编译器设计者的金科玉律:效率(几乎)就是一切。编译器的效率包括两个方面:运行效率(代码的运行速度)和编译效率(产生可执行代码的速度) 1.2 C语言的早期体验 根据编译器设计者地思路而发展形成原创 2011-07-27 11:10:39 · 527 阅读 · 0 评论 -
《C陷阱与缺陷》读书笔记6、7
第六章 预处理器 6.1 不能忽视宏定义中的空格 #define f (x) ((x) – 1) ≠ #define f(x) ( (x) – 1) 6.2 宏并不是函数 宏定义中的所有括号,它们的作用是预防引起与优先级有关的问原创 2011-07-25 11:08:06 · 404 阅读 · 0 评论 -
《C陷阱与缺陷》读书笔记5
第五章 库函数 5.1 返回整数的getchar函数 #include Main () { char c; while ( ( c = getchar() )!= EOF)原创 2011-07-24 10:24:11 · 491 阅读 · 0 评论 -
《C陷阱与缺陷》读书笔记4
第四章 连接 因为编译器一般每次只处理一个文件,所以它不能检测出那些需要一次了解多个源文件才能察觉的错误。而且,在许多系统中连接器是独立于C语言实现的,因此如果前述错误的原因是与C语言相关的,连接器对此同样束手无策。 某些C语言实现提供了一个称为l原创 2011-07-23 10:39:35 · 352 阅读 · 0 评论 -
《C专家编程》读书笔记10
第十章 再论指针 10.1 多维数组的内存布局 char pea[4][6]的内存布局。单个元素的存储和引用是以线性形式排列在内存中的。 首先找到pea[i]的位置,然后根据偏移量[j]取得字符。因此,pea[i][原创 2011-08-09 10:48:51 · 616 阅读 · 0 评论