在C语言中,有很多声明和定义变量、指针的方法,但以前真的没有了解过,每种不同的定义会改变变量在内存中排布的位置。比如全局变量在data区、局部变量在栈中、而malloc分配的内存则在堆中,并且使用了static和不使用结果又不一样,为了避免以后对这些概念再出现混淆,特意做了笔记配图。方便记忆!Continue reading

所有数组名都表示数组的首地址,并且这个地址是个常量,是不可以被赋值的。既然是地址常量,从某种角度说,他也是个指针,所以数组名和指针是等同的。那么我们就可以非常灵活的使用指针及数组名来访问数组中的元素。可以注意看代码中最后几行访问数组的方式是多么的怪异,但的确它是可以的。Continue reading

因为不熟练,往往我在编写代码的过程中,总会把字符串长度、占用空间、大小等概念搞混淆,所以做个笔记,用图文的方式记录一下让自己记忆的更加清楚一些,下图就是一个字符串在内存中的排布,以及一些计算单位的函数是如何计算他们的所需的数据的。要注意的是,在内存中,最小单位就是BYTE。Continue reading