the C programming language 阅读笔记2】的更多相关文章

读了一遍著名的<the C programming language>,果然如听说的一样,讲解基础透彻,案例简单典型,确实自己C语言还有很多细节点不是很清楚. 总结一下阅读的收获(部分原书不清晰的知识点在网络上搜索后补充,引用出处忘记了,原作者看到可联系添加) 1.声明 1.1 变量声明 在C语言中,所有变量都必须先说明后使用,说明通常放在函数开始处的可执行语句之前. 1.2 外部变量 在每一个函数中都要对所要访问的外部变量进行声明.声明所使用的外部变量的类型,在声明时可以用extern显式说…
1. 指针 1.1 自增符的使用 ++*p;//p指向的内容加一 (*p)++; //p指向的内容加一 *p++;//p本身自增 *++p; //p本身自增 因为诸如*和++这样的一元运算符在表达式求值时按从右到左的顺序和运算分量结合. 1.2 指针运算比数组下标运算快 1.3 数组名 一个数组名即该数组第0个元素的位置,所以赋值语句pa = &a[0]等价于pa = a 1.4  数组下标求值 在求数组元素a[i]的值时,C语言实际上先将其转换成*(a + i)的形式再求值 而对于指针pa而言…
C语言,结构化程序设计.自顶向下.逐步求精及模块化的程序设计方法;使用三种基本控制结构构造程序,任何程序都可由顺序.选择.循环三种基本控制结构构造. 模块结构:"独立功能,单出.入口" C++ :是C的超集,类,封装,重载,集成. 通用程序设计:容器, vector,list,dequeue,map, set 算法:排序,查找,,复制,合并,插入,删除 模板类, STL http://blog.163.com/leonary_dy/blog/static/405528602009122…
1.关于内联函数(inline)      借用一下书中的例子. inline int fac(int n) { ) ? :n*fac(n-); }      inline描述符给编译器一个提示,要求它试着把所有对fac()的调用在线化,也就是假如一个编译器够聪明的话,它会把对fac(6)生成常数720,然后直接代替代码中fac(6)的位置.不过这要视函数的复杂程度而言,假如递归复杂,或是有大量循环,或者代码复杂,或者并不依赖输入的内联函数(这个不知道为什么,书上有,先标记着),能否在线化就要看…
1.关于strcpy函数. 书中说c风格的字符串尽量少用,strcpy这样的函数应该也要少用.这里讲这个函数主要是要通过本章课后练习第十题来讲一下前面提及的要点.巩固一下前几章的知识.写了一段,本来感觉自己写得不错了,结果和网上的一笔感觉还是差很多,也学到了很多,下面贴上网址供大家看看.http://blog.csdn.net/cazicaquw/article/details/7044602. 里面讲得很详细,很多细节对于我们初学者来说也是很有用的.但感觉他写得太繁琐了,其实从指针到bool的…
1.关于输出指向字符的指针的值. 现在定义,char c='a',char* pc=&c.在C中,输出该值只需要printf("%p\n",pc);而在C++中,如果cout<<pc<<endl;则会出现奇怪的一串字符,怎么回事呢.由于C++标准库中I/)类对<<操作符重载,因此在遇到字符型指针时会将其当作字符串名来处理,输出指针所指的字符串.所以我们可以将其先转化为void*,再输出. cout << static_cast&l…
1.关于main 函数中的 return 0 C99标准中,main 函数的返回值类型必须是 int ,这样返回值才能传递给程序的激活者(如操作系统).如果 main 函数的最后没有写 return 语句的话,C99 规定编译器要自动在生成的目标文件中(如 exe 文件)加入return 0; ,表示程序正常退出.尽管如此有人会为了移植性在main函数后面加上return 0,这是为了照顾老版本的编译器,如vc6.0等,不过现在过了这么多年了,应该没有人会用这么老的编译器了吧(也许不一定),所以…
在图书馆发现一本<网络多人游戏架构与编程>-- Joshua Glazer, Sanjay Madhav 著.书挺新的,17年出版的,内容很有趣,翻一翻可以学到不少在<计算机网络>上不会讲到的内容,故做此纪录. 前几章,第一章简单介绍了网络游戏的历史和发展,第二章讲了how Internet works, 第三章讲的是 Berkeley Socket,就略过了. 对象序列化 序列化:是指把内存中的内容转化为比特流的形式.比特流是通过网络传输的形式,在主机和服务器上还可以恢复为原始格…
在Ruby中,通过调用构造函数(constructor)来创建对象 song1=Song.new("Ruby") Ruby对单引号串处理的很少,除了极少的一些例外,键入到字符串字面量的内容就构成了这个字符串的值. Ruby对双引号字符串游更多地处理.首先,它寻找以反斜线开始的序列,并用二进制值替换它们.其次是字符串内的表达式内插,#{表达式}序列会被“表达式”的值替换. $greeting="Hello" # $greeting是全局变量 @name="P…
The Swift Programming Language读书笔记学习笔记 第24页 本页主要内容有两个:打印输出和怎样在swift凝视代码 1 怎样打印变量和常量的值? 使用println函数,细节:println函数除打印变量常量值外还输出一个换行 1) 打印常量 eg1 let hw = "hello chinagame.me" println(hw) => 可将字符串常量输出到Console里 2) 打印变量, 双引號里用 \(变量名) 输出.这个像C语言里的%s eg…