目录
结论1:指针类型决定了对指针解引用的时候有多大的权限(一次能操作几个字节)
希望这篇关于指针基础知识的博客能对大家有所帮助,欢迎大家在本篇博客下留言或私信与我交流!
一、指针
1.1 指针是什么
int* p=&a;
指针(&a)是地址
指针变量(p)是存放指针的
- p中放的是a第一个字节的地址,a是int类型占4个字节
- 口头上的指针指的是指针变量
1.2 指针的大小
指针的大小只与平台有关
内存的基本单位是字节
一个字节分为8个比特位
32位机器有32个比特位,就是4个字节,所以指针的大小在32位平台上是4个字节
64位机器有64个比特位,就是8个字节,所以指针的大小在64位平台上是8个字节
1.3 指针的解引用
* 为解引用符号
int a=10;
int* pa=&a;
*pa=20; //*pa=a,此语句可以改变a的值
printf("%d",a);
运行结果:20
pa表示地址
*pa表示此块地址中存储的数据
二、指针类型
2.1 指针类型由什么决定
int* 类型的指针是为了存放int类型变量的地址
char* 类型的指针是为了存放char类型变量的地址
2.2 指针类型的意义
由上文可知,指针大小由平台决定。
那就意味着:在同一平台,指针的大小相等。
顺其自然我们提出疑问:那为什么要设置不同的指针类型?
结论1:指针类型决定了对指针解引用的时候有多大的权限(一次能操作几个字节)
int*类型指针解引用后可以一次操作4个字节;
char*类型指针解引用后只可以一次操作1个字节;