初识Java——指针

指针(Pointer)

  还记得第一次接触指针是在大一的c语言学习中,当时学完之后只知道 * 就是代表的指针,但是至于其真实含义及用法还没有真正学会。这一次从零开始学习Java,又一次学习到了指针,因此对指针有了更多的认识,下面就是通过最近的学习我对指针的认知。

首先要讲指针,就不得不讲变量。因为指针中保存着变量的地址。

变量——计算机语言中能储存计算结果或能表示值的抽象概念

从字面上来看变量就是指可以进行变化的量。往深的说变量其实就是计算机存储临时数据时所创建的区域。在创建每一个变量的时候计算机都会给这个区域随机分配一个地址,这样系统就能通过这个地址找到这个临时区域,进而读取到只属于这个区域的临时数据。因为地址时系统随机分配的,因此直接访问地址从而获取临时数据时可能会产生错误,那为了避免这种情况,就引入了“变量名”这个概念,通过变量名 ->地址 -> 数据,这样就能解决上面的问题。

指针——编程语言中的一个对象

形象的说指针就是一种方法或者是工具,它能够利用地址使它的值直接指向内存中一个区域的值。又因为通过地址也能找到特定的变量单元(内存中一个区域的值),所以也可以将地址形象的成为“指针”。意思就是指针能够通过以它自身为地址从而找到变量,从而使系统访问到这个变量中的数据。

举一个非常简单的例子,操场上有一个由100名学生组成的10*10的方阵,我们只需要通过第几行第几列就能准确地找到这个学生,而这个“行”和“列'就可以称为指针。

下面我在c语言中用代码来表示指针,并且进一步解释。

#include<stdio.h>
void main() {
	int a = 3; //创建一个普通变量a 将数值3赋予a
	int b = 4; //创建一个普通变量b 将数值4赋予b
	int* c;    //创建一个指针变量c 指向b
	c = &b;    //将变量b的地址赋予c 找到所需的变量单元
	int** d;   //创建一个指向指针变量c的指针的指针变量d
	d = &c;
	printf("a的值=%d\n", a);  //输出a的值=3
	printf("b的值=%d\n", b);  //输出b的值=4
	printf("a的地址=%d\n", &a);  //&为取地址符号 输出a的地址=20183372
	printf("b的地址=%d\n", &b);  //输出b的地址=20183360
	printf("c的地址=%d\n", &c);  //输出c的地址=20183348
	printf("d的地址=%d\n", &b);  //输出d的地址=20183360
	printf("*c的结果=%d\n", *c);  //输出*c的结果=4(b的值)
	printf("c的值=%d\n", c);    //输出c的值=20183360(b的地址)
	printf("*d的结果=%d\n", *d);  //输出*d的结果=20183360(b的地址)
	printf("d的值=%d\n", d);    //输出d的值=20183348(c的地址)
	printf("**d的结果=%d\n", **d);   //输出**d的值=4(b的值)
	printf("%d\n", *&a);   //输出3(a的值)
	printf("%d\n", *&**&d);   //输出20183360(b的地址)
}

以上就是我学习指针的所有心得。

 

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值