c语言和c++语言中函数参数的传递 其实关于函数参数的传递,我一直以来的理解还算到位的。但是经常会有一些稀奇古怪的写法会让我有点懵圈,仔细想清楚了,就会发现都是一样的道理,不过要是我来写我可能会那样写,而不这样写,在这里稍微吐槽一下c语言关于数组指针的很多写法,真是很难理解了。写这个博客希望自己从此不要被很多拗口的写法吓住,抓住本质的东西,写自己的代码。 1 函数参数传递的本质 在调用一个函数时进行参数传递(不只是讲参数列表里的参数 2018-09-09 #c与c++
c语言和c++语言中的类型转换 关于类型转换的问题,本来我并没有如何在意。因为一直都是写的c的代码比较多一点嘛,而c这方面的内容并不多,形式也很简单。所以一直以来都会有一点错觉,觉得这方面自己应该了解的差不多,够用了。偶尔写代码有些关于这部分的内容老是出错,我也都是尽量“绕”过去,没想过深究原因。这段时间的基础学习,真的是学到了很多,也让我意识到自己很多错误的观点。其中关于类型转换,我以前的理解确实是很肤浅的,直到现在我可能了解 2018-09-08 #c与c++
c语言和c++语言中的几种运算符 c与c++中的运算符种类繁多,虽然大多数都很简单,且用法明确。但是也有很多需要注意的地方。很早之前我就想将其中的一些注意点写下来了,但是总觉得每个点都很小,写一篇博客似乎篇幅太小了。今天一合计,不如就写一个关于运算符的合集吧。这篇博客里不会写的很详细,但是都是一些容易让人困惑的点。 i++ 与++i i++: 首先将i的值进行拷贝,然后将i值加1,最后返回拷贝; ++i: 首先将i值加1,然后返 2018-09-02 #c与c++
c语言中的变长数组与零长数组 编程确实是需要在实践中提高,这段时间一直在学习c++,同时刷刷leetcode。遇到了很多问题,也搞清楚了很多原本模糊不清的概念,今天主要写一下c语言中的变长数组与零长数组。尤其是其中的变长数组,可是困扰了我一段时间了。 c语言中的变长数组 想必很多学习c++的人都会在书上看到,数组在初始化时一定得确定维度,也就是说定义数组时,维度一定要用常量。但是在编程中很多人肯定发现了,如下程序也能正常运行: 2018-08-29 #c与c++
c语言与c++语言中关键字auto的使用 最近一直在读cpp方面的书籍,虽然每天看的页数不多,但是收获很多,我时间不是很充裕,只能挑拣着一点我觉得我已经掌握的还可以了,有一定把握写好的记录下来。之前写了两篇博客都是讲解cpp与C中的一些关键字的差别,这一篇也是,讲的是关键字auto在c与cpp中的差异。 c语言中的auto 大家都学过c语言,但是可能很多人都不知道c语言中还有个关键字叫做auto。其实很正常,这个关键字在c语言中确实没什么 2018-08-26 #c与c++
c语言与c++语言中关键字extern的使用 相比static关键字,可能大家对于extern更是陌生一些。我有段时间就是这样,看到static,觉得自己好像知道一点,虽然其实是半知半解。看到extern,我通常会心里一虚,确实很陌生啊。记得查过几次,但是似乎看完就又忘记了,原因就是根本没理解。所以,在昨天把曾让自己半知半解的static关键字讲解完毕后,今天再来写曾经让我半知半解都没有的extern关键字。 链接属性 我们知道一个程序中的多 2018-08-15 #c与c++
c语言与c++语言中关键字static的使用 修饰普通变量,修改变量的存储区域和生命周期,使变量存储在静态区,在 main 函数运行前就分配了空间,如果有初始值就用初始值初始化它,如果没有初始值系统用默认值初始化它。 修饰普通函数,表明函数的作用范围,仅在定义该函数的文件内才能使用。在多人开发项目时,为了防止与他人命名空间里的函数重名,可以将函数定位为 static。 修饰成员变量,修饰成员变量使所有的对象只保存一个该变量,而且不需要生成对 2018-08-14 #c与c++
计算机中register、cache、memory的区别 概念 register:寄存器。cpu中的基本单元,与cpu中的运算单元是一个级别的。运算单元直接处理的数据存储器。从普通单片机到intel的cpu全都存在寄存器。 cache:缓存。一般普通MCU是没有缓存的,一些强大的个人电脑或者手机芯片才会有缓存,缓存的一般用的是SRAM静态随机存储器,速度很快。通常情况是电脑在工作时将从内存中读入的用过的数据放入缓存,以便下次用时可以快速找到它。不过cp 2018-07-02 #计算机基础
ResNet论文笔记 退化问题 2013年以来cnn飞速发展,从比较简单的LeNet、AlexNet,到结构对称美观的VGGNet(经典结构之一,SegNet、SSD等都使用它作为基础网络),再到可以大量减少参数的GoogleNet(Inception),一直到本文主角ResNet的出现,它们都有一个共同的特点:网络层数在不断加深。 按理说,深度cnn网络集成了特征提取器与特征分类器,并且特征水平可以通过层数的堆砌来提 2018-06-25 #深度学习
DHCP 实现动态 IP 上网简析 首先,我们需要知道计算机是如何上网的。 计算机之间的通信是建立在五层架构上的,一台计算机要想实现与互联网中另外一台台计算机之间的通信,计算机至少需要知道下面四个参数: *本机的IP地址 *子网掩码 *网关的IP地址 *DNS服务器的IP地址 其中本机的 IP 地址和子网掩码的作用与来历已经在互联网分层结构实现博客中说明了。 网关的 IP 地址也是必须知道的,这个是因为一般情况下我们访问的主机都和我 2018-06-22 #计算机网络