C专家编程
latte_coffee
这个作者很懒,什么都没留下…
展开
-
读《C专家编程》笔记—第二章 这不是Bug,而是语言特性
容易混淆的const关键字const并不能把变量变成常量!在一个符号前加上const限定符只是表示这个符号不能被复制,也就是它的值对于这个符号来说是只读的,但它并不能防止通过程序的内部(甚至是外部)的方法来修改这个值。const最有用之处就是用它来限定函数的形参,这样该函数将不会修改实参指针所指的数据,但其他的函数却可能会修改它。这可能就是C和C++中const最一般的用法。 const可原创 2015-10-19 16:25:27 · 394 阅读 · 0 评论 -
读《C专家编程》笔记-第三章 分析C语言的声明
typedeftypedef为一种类型引入新的名字,而不是为变量分配空间。在某些方面typedef类似于宏文本替换-它并没有引入新类型,而是为现有类型取个新名字,但他们之间存在一个关键性的区别。typedef看上去跟变量声明完全一样,普通的声明表示“这个名字是一个指定类型的变量”,而typedef关键字并不创建一个变量,而是宣称“这个名字是指定类型的同义词”。 必须注意typedef的缺点原创 2015-10-26 15:59:16 · 456 阅读 · 0 评论 -
读《C专家编程》笔记-第六章
auto 和static关键字对堆栈怎么实现函数调用的描述也同时解释了为什么不能从函数中返回一个指向该函数局部自动变量的指针,例如:char * favorite_fruit(){ char deciduous[]="apple"; return deciduous; }当进入该函数时,自动变量decidudous在堆栈中分配。当函数结束后,变量不复存在,它所占有的堆栈空间被回收,可能在任何时候被覆原创 2015-10-28 15:51:36 · 314 阅读 · 0 评论 -
读《C专家编程》笔记-关于内存泄漏
运行一段固定的时间然后终止的程序,大多不需要担心如何释放内存,当程序停止时所分配的内存会被自动回收。而当程序的生存时间要长一点,这就需要管理动态内存的分配和回收。这时在使用malloc()和free()时就要非常慎重。堆经常会出现两种类型的问题: 1.释放或者改写仍在使用的内存(称为“内存损坏”)。 2.未释放不再使用的内存(称为“内存泄漏”)如何避免内存泄漏每次当调用malloc分配内存时,注原创 2015-11-23 10:17:48 · 434 阅读 · 0 评论