<c语言深度解剖>
文章平均质量分 70
jiangyi711
这个作者很懒,什么都没留下…
展开
-
读书笔记《c语言深度解剖》(2)
5.sighned, unsighned关键字前两天的日志里面也已经提到过,这里就不说太多了。可以直接记住的是,一个32位的sighned的类型可以表示的范围是:-2^31——2^31-1,一个32位的unsighned的类型可以表示的范围是:0——2^32-1,以此类推。主要是看到下面一个问题:#include int main() { char a[1000]; int原创 2010-01-26 20:58:00 · 901 阅读 · 0 评论 -
读书笔记《c语言深度解剖》(1)
从昨天开始看《c语言深度解剖》,打算做一个读书笔记,把看到的知识,不管是掌握的还是没掌握的都记录下来,以便以后复习。第一章:关键字1.定义和声明定义:编译器创建一个对象,为这个对象分配一块内存并给它取上一个名字。声明:声明有两重含义。第一,告诉编译器,这个名字已经被匹配到一块内存上面了,下面的代码用到的变量是再别的地方定义的。声明可以出现多次。第二,告诉编译器,这个名字先预定了,别的地方不能拿它做原创 2010-01-26 13:37:00 · 1627 阅读 · 1 评论 -
读书笔记《c语言深度解剖》(3)
7.const关键字const关键字在早时候的文章中,自己已经总结过一些。这次在这本书上看到的讲解,是完全针对c语言的,有一些之前不知道的知识,所以在这里补充一下。const修饰的变量时只读变量,它推出的目的是取代预编译指令。注意,define并不是关键字!const的作用有很多,修饰只读变量,这个就不说了。其还有一点好处就是和define相比,能够避免不必要的内存分配,提高效率。c++编译器通原创 2010-01-27 14:37:00 · 1001 阅读 · 0 评论 -
读书笔记《c语言深度解剖》(4)
10.struct关键字这里struct关键字讲解得比较少,主要有3点:(1)空结构体的大小为1(在gcc下我的输出是0).struct type {};sizeof(type) = 1; (2)柔性数组:在c99中,允许结构最后一个元素是一个大小未确定的数组,这个数组叫做柔性数组。但是柔性数组前面必须至少有一个其他成员。用sizeof返回结构体大小的时候,并不包含柔性数组大小。但是在为含原创 2010-01-27 16:33:00 · 916 阅读 · 1 评论 -
读书笔记《c语言深度解剖》(5)
今天看了第二章,讲的是符号。我觉得需要记录的不多。第二章:符号1.注释在c语言中有两种注释:/* */和//,编译器会剔除掉注释部分,但是不是简单的剔除,而是用空格代替。int/*...*/i;char* a = "abcdefg //hijk";//这是一条 /合法的注释in/*..*/t i; 因此上面的注释中,前三个都是合法的。如果有y=x/*p,本意是x除以p指针指向的值,原创 2010-02-11 17:25:00 · 936 阅读 · 0 评论 -
读书笔记《c语言深度解剖》(7)
第五章. 内存管理1.堆,栈,静态区很多知识之前都总结过,这里记住的是,静态区域的内存在整个程序生命周期都存在,由编译器在编译的时候分配。堆,栈在程序运行的时候分配。2.常见的内存错误2.1 指针没有指向合法的内存struct test{ char *p; int a;}t1, *t2;int main() { strcpy(t1.p, "abcd");原创 2010-03-03 14:10:00 · 904 阅读 · 1 评论 -
读书笔记《c语言深度解剖》(6)
今天看了第四章,数组和指针。第四章:数组和指针1.将数值存储到指定的内存地址前面几个小节没什么好记录的,这一个小节需要注意的是,必须做强制转换。int *p = (int*) 0xFFFFFF;*p = 10; 2.数组当我们定义一个数组a的时候,编译器根据元素类型和数组大小分配一块确定大小的内存,并把这块内存命名为a。名字a一旦被命名就不能被改变(数组不能被作为左值)。a[0],a[1]为每原创 2010-03-02 20:39:00 · 1560 阅读 · 1 评论