指针是什么?
指针是一个变量 ,所有指针变量里保存的是地址,操作系统的地址是固定不变的,而地址的长度是由操作系统的位数决定的。我们如果使用的是32位的操作系统,一个指针占四个字节,如果是32位的操作系统,一个指针占8个字节。
我们来看一下学习指针要懂的指针基本概念:
int *p也可写作int* p
保存字符地址步长加1,保存整型步长加4,以此类推。
不同的地址不同的步长,是由保存的地址的类型决定的。
对应的内存空间:
我们来举个例子——
int num=5;
int *p=#
num++;表示对num对应的内存空间保存的值自加1
p++;对p对应内存空间的值自加1
(*p)++;(*是间接运算符又叫做取之运算符:取指针变量对应空间保存的地址对应的内存空间的值)
引出一个概念——指向的内存空间:就是这个指针变量对应内存空间里保存的地址所对应的内存空间。
所以(*p)++;表示的是对p指向的内存空间的值,即num++;
总结一个规律:加入我们用pp表示二维指针,ppp表示散尾指针,以此类推。我们用维数减去取值运算符个数结果即是我们要调用的值。
我们脑子里要用一个框图:(大概长这样)