登录/注册
下载豆瓣客户端
豆瓣
6.0
全新发布
×
豆瓣
扫码直接下载
iPhone
·
Android
豆瓣
读书
电影
音乐
同城
小组
阅读
FM
时间
豆品
豆瓣读书
搜索:
购书单
电子图书
2023年度榜单
2023年度报告
《C专家编程》的原文摘录
按热度排序
按页码排序
char* s 与 const char* p 相容,char **s 与 const char** p却不相容? 要使上述的赋值合法,必须满足下列条件之一: 1. 两个操作数都是指向有限定符或者无限定符的相容类型的指针; 2. 左边指针所指向的类型必须具有右边指针指向类型的全部限定符; const限定符是修饰指针所指向的类似,而不是指针本身。 类似地,cost char**也是一个没有限定符的指针类型。它的类型是“指向有const限定符的char类型的指针 的指针” (
查看原文
)
月入窗
1赞
2012-06-30 14:07:13
—— 引自第20页
const最有用的用法就是用它限定函数的形参,这样该函数将不会修改实参指针所指的数据,但其它函数却可能会修改它。 (
查看原文
)
月入窗
1赞
2012-06-30 14:07:13
—— 引自第20页
当内核检测到“不会出现”的情况时,他就会“惊慌失措”,引起突然停止。…… 为解决内核的“惊慌”问题,首先必须考虑有哪些事情有可能吓坏操作系统。 Sun 的内核开发小组有一个很隐蔽的 Bug,非常难以发现。其症状是内核的内存偶尔会被覆盖,这会使操作系统“惊慌”。 (
查看原文
)
Grissiom
2011-02-14 10:51:01
—— 引自第133页
对编译器而言,一个数组就是一个地址,一个指针就是一个地址的地址。你应该根据情况做出选择。 …… 为什么人们会错误地认为数组和指针是可以完全互换的呢?这是因为他们阅读了标准的参考文献! The C Programming Language,第二版,Kernihan & Ritchie,第 99 页的底部是: As format parameters in a function definition, 然后翻到第 100 页,紧接前句: char s[]; and char s*; are equivalent... 呜呼!真是不幸,这么重要的一句话竟然在 K&R 第二版中被分印在了两页上!人们在阅读后一句话时很容易忘掉它的前面还有一句“As format parameter in a function definition”(也就是说它只限于这种情况),尤其是整句话的重点在于“数组下标表达式总是可以改写为带偏移量的指针表达式”。 (
查看原文
)
Grissiom
2011-02-15 11:24:10
—— 引自第200页
const float *类型并不是一个具有限定符的类型——它的类型是“指向一个具有const限定符的float类型的指针”,也就是说const限定符是修饰指针所指向的类型,而不是指针本身。 (
查看原文
)
鸣
2011-02-18 13:36:18
—— 引自第20页
关键字const并不能把变量变成常量!在一个符号前加上cosnt限定符只是表示这个符号不能被赋值。也就是它的值对于这个符号来说是只读的。 (
查看原文
)
鸣
2011-02-18 13:51:46
—— 引自第21页
static: 在函数内部,表示该变量的值在各个调用间一直保持延续性。 在函数这一级,表示该函数只对文件可见。 注:你可能会奇怪static的意义会相差如此之大,如果你知道原因,也请告诉我一声。(笔记者注:这句比较搞笑。) (
查看原文
)
鸣
2011-02-18 13:55:48
—— 引自第37页
chapter 2: It's not a bug,it's a language feature! (
查看原文
)
耿老的竹林
2011-04-23 09:42:22
—— 引自第3页
这代表什么意思?是int的长度乘以p?或者是把未知类型的指针p强制转换为int,然后进行sizeof操作? (
查看原文
)
timebug
2011-10-11 21:26:36
—— 引自第38页
没有办法把数组本身传递给一个函数,因为它总会被自动转换为指向数组的指针。当然,在函数内部使用指针,所能进行的对数组的操作几乎跟传递原原本本的数组没有差别。只不过,如果想用sizeof (实参)来获得数组的长度,所得到的结果不正确而已。 (
查看原文
)
timebug
2011-10-16 15:23:50
—— 引自第207页
goto 语句不能跳出c语言当前函数,这也是longjmp取名的由来,它可以跳得很远,甚至可以跳到其他文件的函数中 (
查看原文
)
[已注销]
2012-01-20 12:53:58
—— 引自第128页
C诡异离奇,缺陷重重,缺获得了巨大的成功。 C is quirky, flawed, and an enormous success. -- Dennis Ritchie (
查看原文
)
游子
2012-05-08 09:38:30
—— 引自第1页
分析编程语言缺陷的一种方法就是把所有的缺陷归于3类:不该做的做了;该做的没做;该做但做得不合适。 (
查看原文
)
游子
2012-05-08 13:20:45
—— 引自第28页
NUL用于结束一个ASCII字符串 (
查看原文
)
WilHelM
2012-06-09 07:45:35
—— 引自第29页
NULL用于表示什么也不指向(空指针) (
查看原文
)
WilHelM
2012-06-09 07:45:35
—— 引自第29页
_asm mov ah, 2 _asm mov dl, 43h 可以在汇编代码前冠以关键字“_asm”,也可以只使用该关键字一次,把所有的汇编代码放入一对花括号内,如下: _asm { mov ah, 2 mov dl, 43h int 21h } (
查看原文
)
WilHelM
2012-06-09 07:45:35
—— 引自第136页
对编译器而言,一个数组就是一个地址,一个指针就是一个地址的地址。 (
查看原文
)
fl
2012-06-12 15:44:25
—— 引自第81页
当执行算术运算时,操作数的类型如果不同,就会发生转换。数据类型一般朝着浮点精度更高,长度更长的方向转换,整型数如果转换为signed 不会丢失信息,就转换为signed,否则转换为unsigned。 (
查看原文
)
张三
2012-06-19 21:19:24
—— 引自第23页
在这个位置上(指的是switch的左花括号之后)声明一些变量会被编译器很自然地接受,尽管在switch语句中为这些变量加上初始值是没有什么用处的,因为它绝不会被执行——语句从匹配表达式的case开始执行。 (
查看原文
)
张三
2012-06-20 20:57:28
—— 引自第30页
除了递归调用之外,堆栈并非必需。因为在编译时可以知道局部变量、参数和返回地址所需空间的固定大小,并可以将它们分配于bss段。BASIC,COBOL和FORTRAN的早期编译器并不允许函数的递归调用,所以它们在运行时并不需要动态的堆栈。允许递归调用意味着必须找到一种方法,在同一时刻允许局部变量的多个实例存在,但只有最近被创建的那个才能被访问,这很像栈的经典定义。 (
查看原文
)
张三
2012-06-23 10:20:45
—— 引自第117页
<前页
1
2
3
后页>
>
我来写笔记
>
C专家编程
作者:
[美] Peter Vander Linde
isbn:
7115106274
书名:
C专家编程
页数:
291
译者:
徐波
定价:
40.00元
出版社:
人民邮电出版社
装帧:
平装
出版年:
2002-12
又名:
Expert C Programming