在C语言中,有很多声明和定义变量、指针的方法,但以前真的没有了解过,每种不同的定义会改变变量在内存中排布的位置。比如全局变量在data区、局部变量在栈中、而malloc分配的内存则在堆中,并且使用了static和不使用结果又不一样,为了避免以后对这些概念再出现混淆,特意做了笔记配图。方便记忆! #include...
所有数组名都表示数组的首地址,并且这个地址是个常量,是不可以被赋值的。既然是地址常量,从某种角度说,他也是个指针,所以数组名和指针是等同的。那么我们就可以非常灵活的使用指针及数组名来访问数组中的元素。可以注意看代码中最后几行访问数组的方式是多么的怪异,但的确它是可以的。 #include <stdio.h...
因为不熟练,往往我在编写代码的过程中,总会把字符串长度、占用空间、大小等概念搞混淆,所以做个笔记,用图文的方式记录一下让自己记忆的更加清楚一些,下图就是一个字符串在内存中的排布,以及一些计算单位的函数是如何计算他们的所需的数据的。要注意的是,在内存中,最小单位就是BYTE。
在计算机内部,负数都是以补码方式存在的。正数的原码、反码、补码都是一样的。而负数的源码、反码、补码略有不同,具体的计算方法如下: 7的原码、反码、补码如下 0000 0111 //byte0000 0000 0000 0111 //word0000 0000 0000 0...