C语言深度解剖读书笔记】的更多相关文章

对于本节的函数内容其实就没什么难点了,但是对于函数这节又涉及到了顺序点的问题,我觉得可以还是忽略吧. 本节知识点: 1.函数中的顺序点:f(k,k++);  这样的问题大多跟编译器有关,不要去刻意追求.  这里给下顺序点的定义:顺序点是执行过程中修改变量值的最后时刻.在程序到达顺序点的时候,之前所做的一切操作都必须反应到后续的访问中. 2.函数参数:函数的参数是存储在这个函数的栈上面的(对于栈可以看上篇文章<内存管理的艺术>),是实参的拷贝. 3.函数的可变参数: a.对于可变参数要包含sta…
开始本节学习笔记之前,先说几句题外话.其实对于C语言深度解剖这本书来说,看完了有一段时间了,一直没有时间来写这篇博客.正巧还刚刚看完了国嵌唐老师的C语言视频,觉得两者是异曲同工,所以就把两者一起记录下来.等更新完这七章的学习笔记,再打算粗略的看看剩下的一些C语言的书籍. 本节知识: 1.c语言中一共有32个关键字,分别是:auto.int.double.long.char.short.float.unsigned.signed.sizeof.extern.static.goto.if.else.…
本文出处:http://blog.csdn.net/mbh_1991/article/details/10149805 开始本节学习笔记之前,先说几句题外话.其实对于C语言深度解剖这本书来说,看完了有一段时间了,一直没有时间来写这篇博客.正巧还刚刚看完了国嵌唐老师的C语言视频,觉得两者是异曲同工,所以就把两者一起记录下来.等更新完这七章的学习笔记,再打算粗略的看看剩下的一些C语言的书籍. 本节知识: 1.c语言中一共有32个关键字,分别是:auto.int.double.long.char.sh…
1.1最宽恒大量的关键字----auto 函数内部变量,限制作用域为这个 1.2.1最快的关键字---- register函数. 关键字请求编译器尽可能的将变量存在 CPU 内部寄存器中 1.2.2使用 register 修饰符的注意点 register 变量必须是能被 CPU 寄存器所接受的类型.意味着 register 变量必须是一个单个的值,并且其长度应小于或等于整型的长度. 而且 register 变量可能不存放在内存中,所以不能用取址运算符“&”来获取 register 变量的地址.…
深度学习读书笔记之RBM 声明: 1)看到其他博客如@zouxy09都有个声明,老衲也抄袭一下这个东西 2)该博文是整理自网上很大牛和机器学习专家所无私奉献的资料的.具体引用的资料请看参考文献.具体的版本声明也参考原文献. 3)本文仅供学术交流,非商用.所以每一部分具体的参考资料并没有详细对应,更有些部分本来就是直接从其他博客复制过来的.如果某部分不小心侵犯了大家的利益,还望海涵,并联系老衲删除或修改,直到相关人士满意为止. 4)本人才疏学浅,整理总结的时候难免出错,还望各位前辈不吝指正,谢谢.…
文章提纲 全书总评 读书笔记 C1.初识神经网络 C2.神经网络是如何学习的 C3.有监督学习(运用感知机) C4.无监督学习(自组织映射) Rreferences(参考文献) 全书总评 书本印刷质量:5星.纸张很白,印刷清楚,文字排版合适,基本没有排版过程中引入的错误,阅读不累眼睛. 著作编写质量:3星.入门书,看完后可能会对神经网络有个基本概念,但是也可能就只有个基本概念.基本概念描述还是清楚的,还给出了比较好的参考资料.几个例子讲的很浅,好处就是提供了代码,如果有开发方向的需要可以参考.深…
我们数据结构的课用了这本英文教材,作者是Mark Allen Weiss.总体来说比<算法导论>简单很多,但内容上交集非常大.其实是因为去掉了大多数证明和数学,对于没有耐心看符号和公式的人,显得更友好,更通俗.其中的代码实现很靠谱,照着敲出来基本正确可运行,这点尤其适合入门者. 不过现在读<算法导论>以后,感到还是应该沉下心来和公式.定理神马的打打交道.Mark Allen Weiss这本书确实适合大一和大二的同学看,大三就不适合了. 深深地明白了为什么大神说“算法导论其实很浅显”…
第一章 关键字 C语言共有32个关键字. 关键字   auto 声明自动变量 int 声明整型变量 long 声明长整型变量 char 声明字符型变量 float 声明浮点型变量 short 声明短整型变量 double 声明双精度变量 signed 声明有符号类型变量 unsigned 声明无符号类型变量 struct 声明结构体变量 union 声明联合数据类型 enum 声明枚举数据类型 static 声明静态变量 switch 用于开关语句 case 开关语句分支 default 开关语…
第6章 函数 1.编码风格 [规则6-1]每一个函数都必须有注释 [规则6-2]每个函数定义之后以及每个文件结束之后都要加若干个空行 [规则6-3]在一个函数体内,变量定义与函数语句之间要加空行 [规则6-4]逻辑上密切相关的语句之间不加空行 [规则6-5]复杂的函数中,在分支语句,循环语句结束之后需要适当的注释 [规则6-6]不要随意删除别人的代码 [规则6-7]用缩行显示程序结构,缩进量同意使用4个字符 [规则6-8]同层次的代码在同层次的缩进层 [规则6-9]代码行最大长度控制在80个字符…
第5章 内存管理 1.野指针 定义指针变量的同时最好初始化为NULL,用完指针后也将变量的值设置为NULL.也就是说除了使用时,别的时间都把它设置为NULL 2.堆,栈和静态区 堆:由malloc系列函数或new操作符分配的内存.其生命周期由free或delete决定 栈:保存局部变量 静态区:保存自动全局变量和static变量.整个程序的生命周期都存在,由编译器在编译的时候分配 3.常见的内存错误 结构体成员指针未被初始化 没有为结构体指针分配足够的内存 一般在函数入口使用 assert(NU…
第4章 指针和数组 1. int *p=NULL 和 *p=NULL 有什么区别 int *p = NULL; 第一句代码的意思是:定义一个指针变量p,其指向的内存里面保存的是 int类型的数据:在定义变量的同时把p的值设置为 0x00000000,而不是把 *p的值设置为 0x00000000,这个过程称为初始化,是在编译的时候进行的. int *p; *p = NULL; 第一行代码,定义了一个指针变量p,其指向的内存里面保存的是 int类型的数据,但是这时候p本身的是多少不得而知:第二行代…
第3章 预处理 1.下面两行代码都是错的.因为注释先于预处理指令被处理,当这两行被展开成“//……”和“/*……*/”时,注释已处理完毕,所以出现错误 #define BSC // #define BMC /* #define EMC */ BSC my single - line comment BMC my multi - line comment EMC [规则 3-1]函数宏的调用不能缺少参数,如果此函数宏有参数的话. [规则 3-2]在定义函数宏时,每个参数实例都应该小括号括起来,除非…
第2章 符号 1.注释符号 编译器会将注释剔除,用空格代替原来的注释 y=x /* p; 编译器提示出错的原因:实际上,编译器会把“/*”当作一段注释的开始,直到出现“*/”为止. [规则 2-1]注释应当准确,易懂,防止二义性 [规则 2-2]注释是对代码的提示,而不是文档 [规则 2-3]边写代码边写注释 [规则 2-4]一目了然的语句不加注释 [规则 2-5]全局数据必须加注释 [规则 2-6]注释采用英文(不一定所有的编译器都能显示中文) [规则 2-7]注释的位置与被描述的代码相邻,可…
本人最近在某咨询公司实习,涉及到了一些数据分析的工作,用的是R语言来处理数据.但是在应用的过程中,发现用R很不熟练,所以再打算学一遍R.曾经花一个月的时间看过一遍<R语言编程艺术>,还用R做过阿里的推荐算法比赛,对R语言有一些最初级.基本的了解.不过 ,上面那本书虽然挺好,但是不适合速成,是从程序员的角度写的,对常用函数和统计知识涉及的不多.在实际工作中,发现适时应用R的包和函数是十分重要的,所以打算另找一本书来看.在学校放着一本<R语言实战>,无奈没拿过来,就用电子版的学一遍吧.…
人工智能 什么是人工智能.机器学习与深度学习(见图1-1)?这三者之间有什么关系?…
索引: 一.SQL Server的体系结构 二.查询 三.表表达式 四.集合运算 五.透视.逆透视及分组 六.数据修改 七.事务和并发 八.可编程对象 五.透视.逆透视及分组 5.1 透视 所谓透视(Pivoting)就是把数据从行的状态旋转为列的状态的处理.其处理步骤为: 相信很多人在笔试或面试的时候被问到如何通过SQL实现行转列或列转行的问题,可能很多人当时懵逼了,没关系,下面我们通过例子来理解. (1)准备数据 --1.0准备数据 USE tempdb; IF OBJECT_ID('dbo…
索引: 一.SQL Server的体系结构 二.查询 三.表表达式 四.集合运算 五.透视.逆透视及分组 六.数据修改 七.事务和并发 八.可编程对象 一.SQL Server体系结构 1.1 数据库的物理布局 数据库在物理上由数据文件和事务日志文件组成,每个数据库必须至少有一个数据文件和一个日志文件. (1)数据文件用于保存数据库对象数据.数据库必须至少有一个主文件组(Primary),而用户定义的文件组则是可选的.Primary文件组包括 主数据文件(.mdf),以及数据库的系统目录(cat…
第一章 精华 1,JavaScript的函数(主要)基于词法作用域(lexical scoping)的顶级对象.强类型语言允许编译器在编译时检测错误,但弱类型很自由,无需建立复杂的类层次,不用做强制造型.JavaScript拥有强大的对象字面量表示法,这种表示法是JSON的灵感来源. 2,JavaScript有一个无类型的(class-free)对象系统,在这个系统中,对象可以直接从其他对象继承属性. 3,JavaScript依赖于全局变量来进行连接,所有编译单元的所有顶级变量被撮合到一个全局对…
请在40分钟内完成以下20道C语言基础题.在没有任何提示的情况下,如果能得满分,那么你可以扔掉本书了,你的水平已经大大超过了作者:如果能的80分以上,说明你的C语言基础还不错,学习本书可能会比较轻松:如果得分在50分以下,也不要气馁,努力学习就行了:如果不小心得了10分以下,你就得给自己悄悄警钟了:如果不幸得了0分,那实在是不应该,因为毕竟很多题是很简单的.   C语言基础题(每题5分). 1. 下面的代码输出时什么?为什么?  C++ Code  1 2 3 4 5 6   void foo(…
第一章 精华 任何语言都有其精华的部分和鸡肋的部分,javascript也不例外,而且鸡肋的部分还很多.但javascript的流行却不受他的质量影响. javascript为何如此流行?因为他是web浏览器的语言,所有浏览器都识别他.他与浏览器的结合自然成为了世界上最流行的语言之一. javascript建立在一些非常好的想法和少数非常坏的想法之上.非常好的想法包括函数.弱类型.动态对象(这个还没理解)和富有表现力的对象字面量表示法:坏的想法包括基于全局变量的编程模型(所有编译单元的所有顶级变…
在导入数据并且将数据进行组织和初步可视化以后,需要对数据进行分布探索和两两关系分析等.主要内容有描述性统计分析.频数表和列联表.相关系数和协方差.t检验.非参数统计. 7.1描述性统计分析 7.1.1方法云集 书上说,R中的描述性统计量函数“多的尴尬”.summary函数返回最大值.最小值.上下四分位数.中位数.平均值以及因子向量和逻辑向量的频数统计.还讲了apply.sapply函数,写了峰度和偏度.fivenum函数可以返回图基五数,即最小值,下分位数,中位数,上四分位数,最大值. 扩展:…
本章内容: 数学和统计函数 字符处理函数 循环和条件执行 自编函数 数据整合与重塑 5.1一个数据处理难题 5.2数值和字符处理函数 分为数值函数和字符串函数,下面是数学函数截图: ceiling.floor.trunc.signif函数第一次听说,是一些数位函数的处理函数.注意log是以e为底的.当上面的函数用在向量.矩阵.数据框时,单独用于每一个独立的值. 5.2.2统计函数 举个例子:mean函数 mean(x, trim = , na.rm = FALSE, ...) #trim参数表示…
本章内容: 操纵日期和缺失值 熟悉数据类型的转换 变量的创建和重编码 数据集的排序,合并与取子集 选入和丢弃变量 多说一句,数据预处理的时间是最长的……确实是这样的,额. 4.1一个示例 4.2创建新变量 算术运算符:+.-.*./.^(**)(求幂).x %% y(取余运算).x %/% y(整数除法). transform函数: transform函数现在只用于数据框.对数据框进行操作. 例子: mydata <- transform(mydata, sumx = x1+x2, meanx…
2.1数据集的概念 变量的类型是不同的,比如标示符.日期变量.连续变量.名义变量.有序型变量等,记得数据挖掘导论中有专门的描述. R可以处理的数据类型包括了数值型.字符型.逻辑型.复数型(虚数).原生型(字节). 2.2数据结构 R拥有很多存储数据的对象类型,包括 标量.向量.矩阵.数组.数据框.列表.它们可以用下图表示: 因子是R中的名义型或者有序型变量,比较特殊. 2.2.1向量 标量是只有一个元素的向量,一般用来保存常量.其他没什么说的. seq函数: seq(, to = , by =…
1.典型的数据分析过程可以总结为一下图形: 注意,在模型建立和验证的过程中,可能需要重新进行数据清理和模型建立. 2.R语言一般用 <- 作为赋值运算符,一般不用 = ,原因待考证.用->也可以. 3. age <- c(,,,,,,,,,) weight <- c(4.4,5.3,7.2,5.2,8.5,7.3,6.0,10.4,10.2,6.1) mean(weight) sd(weight) cor(age,weight) plot(age,weight) 上面这一段代码是基…
<Go语言实战>中文版pdf 百度网盘: https://pan.baidu.com/s/1kr-gMzaPAn8BFZG0P24Oiw 提取码: r6rt 书籍源码:https://github.com/goinaction/code 读后感:中文版只有240页,如果读者有其他编程语言的基础,那这是很好的一本入门书籍.我之前接触并使用过几种编程语言,Go语言给我的感觉是将C这种底层语言的高性能和Python这种高级语言的简洁结合在一起了.在我接触的语言中,Go语言的概念和内置关键字是最少的,…
一.ANSI C标准 1. ANSI向C语言预处理器引入了几项新的功能,包括“字符串化”操作符(#).“符号粘贴”操作符(##).#pragma指令. 2. Q:char a[3] = "abc";合法吗? A:它在ANSI C标准中是合法的,它声明了一个长度为3的数组,把它的3个字符初始化为'a', 'b'和'c',但没有终止符'\0',因此该数组并不是一个真正的C字符串,从而不能用在strcpy, printf %s等语句中. 3. Q:memcpy()和memmove()有什么区…
一.字符和字符串 1. Q:为什么strcat(string, '!')不行? A:strcat()用于拼接字符串,所以应该写成strcat(string, "!")."!"实际上包含两个字符:'!'和'\0'. 2. Q:为什么不能这样检查一个字符串是否跟某个值匹配? char *string; ... if (string == "value") { /* string matches "value"*/ } A:C语言中…
1. Q:为什么我不能对void *指针进行算术运算? A:因为编译器不知道所值对象的大小,而指针的算法运算总是基于所指对象的大小的. 2. Q:C语言可以“按引用传参”吗? A:不可以.严格来说,C语言总是按值传参,你可以模拟按引用传参,定义接受指针的函数,然后在调用时使用&操作符.但C没有任何真正等同于按引用传参的东西. 3. Q:怎样在整型和指针之间进行转换?能否暂时把整数放入指针变量,或者相反? A:C标准中规定整数与指针之间的相互转换是实现定义的,因此不保证指针和整数之间无需修改就能相…
1. C语言的设计目标之一就是高效的实现——让C语言的编译器相对较小,容易写成,同时也更容易生成较好的代码. 2. Q:下面的代码打印出49.不管按什么顺序,难道不该是56吗? ; printf("%d\n", i++ * i++); A:尽管后缀自加和后缀自减操作符在输出其旧值之后才会执行运算,但这里的“之后”的含义常常被误解.无法保证自增或自减会在放弃变量原值之后和对表达式其他部分进行计算之前立即进行,只能保证变量的更新会在表达式“完成”之前的某个时刻(下一个“序列点”之前)进行.…