一.掌握指针的基本用法
1.1使用指针之后程序简洁高效
1.2 有效表示复杂的数据结构
1.3动态分配内存
1.4 被调用的函数有非常多的信息要返回,需要通过指针
1.5开始学习指针 什么叫指针? 内存以字节为单位开始编号,称之为地址 1Byte=8 bit
![](https://i-blog.csdnimg.cn/blog_migrate/6838eeb0450758dccea867b99f978951.png)
如果要显示地址的话,short 是占两个字节,&i就是取i的地址,起始地址是2000,结束地址是2001
![](https://i-blog.csdnimg.cn/blog_migrate/7e83f27a9df1f8241369ea812983ac31.png)
要想往内存空间中存储数据,就得先要有一个变量
二.指针的基本用法二
2.1指针和指针变量理解
![](https://i-blog.csdnimg.cn/blog_migrate/f67b8d348d2ea31a5cc2399b9c0e0caa.jpeg)
2.2指针变量的一般形式
<存储类型> <数据类型> *<指针变量名>
例: auto int * p
int 是指内存单元的存储的内容是int 型
内存单元的编号是p
2.3理解说明
int a=20; //a里面存放的是整数
int *p; // p存放的是地址
怎么把a和地址产生关系呢?换句话说,p存的是谁的地址呢?
那么就有了p=&a
总的来说就是 两步
int a=20;
int *p=&a;
2.4
int a=10; int *p; p=&a;
如下图所示,a变量里面存储的是10(电脑中存的是补码,0101的这种形式),占了四个存储单元,起始地址是0xbf98c768
0xbf98c768是8位的16进制
那么&p是就是取指针变量p的地址,这边是0xbf3be5c,那么这个地址里面存的就是变量a的地址
![](https://i-blog.csdnimg.cn/blog_migrate/e2bb1ebb81242bf83e930a1ff3386835.png)
变量与指针的关系,指针里头存储的是变量的地址,比如int 型的变量,占据4个字节,但是指针也要占据空间(0xbf98c768)本身是一个8位16进制数,一位16进制数是4位2进制,8位16进制数,一共就是32位,8位为一个字节,则一共四个字节,图中写在了一个格子里0xbf98c768这个数字占据的是0xbf3be5c,0xbf3be5d,0xbf3be5e,0xbf3be5f这个格子,也就是四个字节里,实际上则这个指针里头所存的内容就是变量的起始地址(首地址)10,就是上图这个指向关系
指针总是指向变量第一个字节的地址,即变量的首地址。
三.指针的基本用法三