说到指针我们不得不提到内存
内存是电脑上特别重要的储存器,计算机中的程序运行都是在内存中进行。
所以为了有效使用内存,就把内存分为一个一个的内存单位,每次内存单位的大小都是一个字节。
为了能够有效的访问到内存的每个单元,就给内存单元进行编号,这些编号被称为该内存单元的地址
我们创建一个变量 i=10 这个变量占四个字节
#include<stdio.h>
int main()
{
int i = 10;//4byte
//%p 地址的打印
printf("%p", &i);
return 0;
}
让我们执行这个代码看看 i 的地址在哪里
有人就会问 i=10 不是占用四个字节么 打印出来的却是一个字节、
这里补充一点 当一个变量占很多个字节时,取地址只会拿出他的起始地址
我们对内存单元进行编号 内存单元有了一一对应的编号 我们就可以很快的找到他 而不是大海捞针
内存单元都有编号,这个编号就是地址,我们把这个地址也叫做指针
指针在编程中的进一步使用
我们以下列代码来讲解
#include<stdio.h>
int main()
{
int a = 10;
int*pa = &a; //pa是用来存放地址的,所以我们把pa叫指针变量
return 0;
}
我们来一一解释下符号的含义
1. * 告诉我们,pa是一个指针变量
2. int 告诉我们 pa指向的对象是 int 类型
3. pa 是存放a的地址
这里我们用这张图可能更加直观
我们再举个例子 来加深一下
#include<stdio.h>
int main()
{
char ch = 'c';
char *pa = &ch;
return 0;
}
因为ch 是char类型 所以 char*pa=&ch
我们对比一下
这样我们就成功把变量a放在了pa里
但是我们最终目的是 有朝一日找到他并且使用它
接下来我们就讲解如何使用它
只需要加上 *pa 并且改为你想到的内容 例如我们把 c 改成 q 只需要加上*pa='q';
我们再次调试看看结果
此时的 c 就变成了 q
讲到这里我们就初步了解了 指针
补充
& 是取地址操作符 * 是解引用操作符 他们的出现一般是成双成对的
总结一下
任何一个变量 都要开辟空间 他就有地址 我们就可以取出 我们可以放在指针变量里(指针变量是专门储存地址的)
结语
时逢冬至 祝:友友们,冬至快乐!