关于指针

参考:https://blog.csdn.net/mhjcumt/article/details/7351032

一.指针的概念

在计算机科学中,指针(Pointer)是编程语言中的一个对象,利用地址 **,它的值直接指向(points to)存在电脑存储器中另一个地方的值。**由于通过地址能找到所需的变量单元,可以说,地址指向该变量单元。因此,将地址形象化的称为"指针"。意思是通过它能找到以它为地址的内存单元。 在高级语言中,指针有效地取代了在低级语言,如汇编语言与机器码,直接使用通用暂存器的地方,但它可能只适用于合法地址之中。指针参考了存储器中某个地址,通过被称为反参考指针的动作,可以取出在那个地址中存储的值。作个比喻,假设将电脑存储器当成一本书,一张内容记录了某个页码加上行号的便利贴,可以被当成是一个指向特定页面的指针;根据便利粘贴面的页码与行号,翻到那个页面,把那个页面的那一行文字读出来,就相当于是对这个指针进行反参考的动作。
来自百度

二.指针的自我理解
指针像它的名字一样,起一个指示性作用,类似于数组的下标。通过指针,可以找到变量的地址,再通过"p->data",就可以取出地址中的内容。
总之,始终记住指针是指向的地址。

三指针的相关操作
1.定义指针
cahr *p;
int p;
2.初始化
指针初始化时,“=”的右操作数必须为内存中数据的地址,不可以是变量,也不可以直接用整型地址值(但是int
p=0;除外,该语句表示指针为空)。此时,*p只是表示定义的是个指针变量,并没有间接取值的意思。

  int *p;
  *p=7;

程序报错,因为p是指向7所在的地址,*p = 7给p所指向的内存赋值,p没有赋值,所以p所指向的内存位置是随机的,没有初始化的。加粗样式
int a;
int *p;
p=&a;
*p=7;
正确,所以要对指针指向的地址赋值,指针才有意义。
指针必须初始化并且有所指,才有意义
3.指针的迭代
在这里插入图片描述
指针始终指向地址的首地址,加一便是下一个地址,减一便是上一地址。
(每个存储空间有一个编号,也就是地址.)
三.关于指针什么时候为他开辟内存空间
1.如果定义指针的时候,指针指向一个有空间的数据则不需要赋值;
2.如果要对指针赋值则需要开辟空间;


有意思的东西,我是打出来了一个啥
在这里插入图片描述

错因:指针有空间,内存中幼值,但没有所指

最后:指针在赋值操作之前,必须要进行分配空间操作。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值