对指针的一些理解

int a=4;
int *p;
p=&a;
cout<<*p<<endl;

结果:4

这算简单的,我一开始也很明白
int* p是声明一个指针变量,那什么是指针变量,我的理解就是p是个变量,变量嘛就是可以变化的量,也就是说p里的值是可以变化的。
在这里插入图片描述
既然说*p 是去访问变量里的地址所存放的值(图中我没说清楚)
那 int * p 是什么意思呢?
刚开始的时候我也蛮疑惑的。
我现在的理解:
   p是一个指针变量,它的类型是int *,它所指向的类型是int型
也就是说p通过访问它自身存放的地址,的到地址里面放的值得类型。
就如上图,p去访问0xcc,0xcc里面放的是4,4是int,这就是p指针的指向类型。

int**** p;


来探讨一下这个p

在这里插入图片描述

#include <iostream>
#include<bits/stdc++.h>
using namespace std;
int main()
{
	int a = 4;
	int ****p1 = NULL;
	int ***p2 = NULL;
	int **p3 = NULL;
	int *p4 = NULL;
	p4 = &a;
	p3 = &p4;
	p2 = &p3;
	p1 = &p2;
	cout << "p1地址:" << p1 <<"  " << "p1指向:" << *p1 << endl; 
	cout << "p2地址:" << p2 <<"  " << "p2指向:" << *p2 << endl;
	cout << "p3地址:" << p3 <<"  " << "p3指向:" << *p3 << endl;
	cout << "p4地址:" << p4 <<"  " << "p4指向:" << *p4 << endl;
	cout << "a的地址: " << &a << endl;
	cout << *p1 << endl;
	cout << **p1 << endl;
	cout << ***p1 << endl;
	cout << ****p1 << endl;

	
}

p1地址:00DAFD5C p1指向:00DAFD50
p2地址:00DAFD50 p2指向:00DAFD44
p3地址:00DAFD44 p3指向:00DAFD74
p4地址:00DAFD74 p4指向:4
a的地址: 00DAFD74
00DAFD50
00DAFD44
00DAFD74
4

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值