指针

 【1】指针

地址常量:不可写的内存地址值

指针变量:专用于存储地址的变量

 【2】定义指针

int a = 10;

int *p = &a;

char b = 'K';

char *w = &b;

 【3】运算符

1--->&

取地址符:获取数据的内存地址

2--->*

1、定义指针变量时代表类型的一部分

2、指针解引用:通过地址获取地址里的内容(钥匙)

3、指针的降级(行指针-->列指针)

3--->+-

指针加减:加减的是单位长度。

单位长度:由指向数据类型所占的字节数决定。

4--->[]

指针加单位长度后,取内容运算

a[i] <==> *(a+i)

 【4】指针与数组

int a[5] = {0,1,2,3,4}; //a:20字节

int *p = a; //p:4字节


p[3] <==> *(p+3) //p是变量

a[3] <==> *(a+3) //a是常量

 【5】指针变量占4字节
 【6】数组指针

本质是指针,用于专存储 数组的地址,多用于指向二维数组

char a[3][4] = {0};

char (*p)[4] = a; //size == 4;

a[i][j]; <==> *(a[i]+j); <==> *(*(a+i)+j);

p[i][j]; <==> *(p[i]+j); <==> *(*(p+i)+j);

a:地址常量

p:指针变量

【7】二级指针

short a = 10; //size == 2

short *p = &a; //size == 4

short **w = &p; //size == 4

w<==>&p

*w<==>p<==>&a

**w<==>*p<==>a

【8】void

 void *p; //泛型指针,使用时需要强制类型转换

【9】const

const int *p; //常量化*p

int *const w; //常量化w

【10】NULL

NULL <==> 0 //防止野指针的形成





评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值