一、不能动的“地址”—void指针 1.1 void指针初探 void *表示一个“不知道类型”的指针,也就不知道从这个指针地址开始多少字节为一个数据。和用int表示指针异曲同工,只是更明确是“指针”。 因此void*只能表示一个地址,不能用来&取值,也不能++--移动 ...
一 指针的移动 . 指针的向前及向后移动 指针每次加一就是指针向前移动指针类型对应的字节数。下面通过一个int指针来指向一个int数组,看看指针的加法运算到底是个什么鬼 运行结果如下图所示: 可以看到,指针的加法就是向前移动指定类型字节数,在数组中就是指向下一个元素。 下面再来看看与加法相反的减法,仍然以上面的代码为例,新增一句:ptr 运行结果如下图所示: 可以看出,减法即代表向后移动指针类型对 ...
2015-07-19 02:11 0 4240 推荐指数:
一、不能动的“地址”—void指针 1.1 void指针初探 void *表示一个“不知道类型”的指针,也就不知道从这个指针地址开始多少字节为一个数据。和用int表示指针异曲同工,只是更明确是“指针”。 因此void*只能表示一个地址,不能用来&取值,也不能++--移动 ...
一、使用指针传出分解后的数字 实现一个方法“多个返回值”的效果:返回一个三位数数字的个位、十位、百位。这里,我们借助指针来”返回“分解后的结果。这种应用也是最常见的指针应用。 测试数字为365,调用parseNumber函数,将要返回的值的地址作为参数传递 ...
一个由C/C++编译的程序占用的内存分为以下几个部分: 1、栈区(stack):又编译器自动分配释放,存放函数的参数值,局部变量的值等,其操作方式类似于数据结构的栈。 2、堆区(he ...
一、使用sizeof计算数组长度 1.1 sizeof的基本使用 如果在作用域内,变量以数组形式声明,则可以使用sizeof求数组大小,下面一段代码展示了如何使用sizeof: ...
一、内存的使用 1.1 你创建的内存区域可能是脏的 当我们创建一个内存区域的时候,内存中的数据可能是乱七八糟的(可能是其他代码用过后遗留的数据),如下面一段代码: 其运 ...
1.什么是指针: 指针是一个存储计算机内存地址的变量,即指针变量里面存放的是内存地址。 2.操作符:*和& 操作符*根据出现的位置不同,既可以用来声明一个指针变量,也可以用作指针的取值。当用在声明一个变量时,*表示这里声明了一个指针。其它情况用到*表示指针的取值。 & ...
定义指针变量 定义指针变量与定义普通变量非常类似,不过要在变量名前面加星号*,格式为: datatype *name; 或者 datatype *name = value; *表示这是一个指针变量,datatype表示该指针变量所指向的数据的类型 。例如: int *p1; p1 ...
很多人都知道this指针,这篇文章的主要目的是为了培训我们公司的新人。 默认的this指针指向 规则1 this指针默认指向方法调用时为其指定的对象,如:obj.fun(),fun方法体中的this指针指向obj。 规则2 如果在方法调用时没有为方法指定对象 ...