指针基础中的细节(初始化)

指针初始化的相关细节

指针定义

指针是用于存出数据或函数的内存地址的变量。
数据类型* 变量名

指针赋值

利用两种方式实现指针变量指向特定内存地址。
1.利用指针地址(&)分配变量的地址

int x=10;
int*P;
*p=&x;//使用取地址操作符获取变量的地址

在这里插入图片描述
这里假设变量x的地址是0x1111,指针变量p,它也是一个变量,有自己的地址0x5555,但指针变量p内存储必须为一个地址,这里它保存x变量的地址。
2.让指针变量指向来自堆的动态内存分配

int *ptr;
ptr=(int*)malloc(sizeof(int)*count);

在这里插入图片描述
这里ptr作为指针变量,有自己的地址为0x1111,它指向堆中的一块内存,这块内存地址为0x0011

指针变量的大小

一般来说在x86平台下指针变量大小为4字节,在x64平台下为8字节,这里与它指向什么类型变量无关,无论它指向一个int型变量还是一个占很大内存的数组或结构体,但它本身只有四字节。

指针解引用

在第一张图中,通过取值操作符*指针变量例如(*p)就可以访问指针变量p中储存的地址所对应的值。

多级指针

int x=10;
int*p=&x;
int **q=&p;

如图
在这里插入图片描述
在二级指针q中保存一级指针p的地址,在它定义时必须定义为int**才课保存一级指针的地址;它进行解引用时q=0x555,*q=0x111,
**q=10

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值