哈喽童鞋,感谢你相信我,接下来我会尽我所学的经验向你分享。作为初学者,我想大部分童鞋对于指针这两个字的理解并不到位吧。再此,我向你分享学习指针的具体步骤也是学习一项新东西的步骤,你需要特别注意哦。
指针是啥?为什么我们要学习指针?指针能做什么事?(步骤可能不完整,愿你在我的启发下去找到完整的学习思路)
好了,我开始回答这几个灵魂拷问。首先指针顾名知意就是指向某个位置或方向的针,你可以类比于指南针,它是用来找到某样东西的一个工具。在计算机中指针就是用来找到内存中指定位置元素的工具,童鞋注意“此工具”非我们日常生活中的工具哦。要想了解指针,那就得先知道数据在内存中是如何存储的,在内存中每一份数据都是有自己独立的存储空间的,由此推出在内存中所有存储的数据都有自己的存储空间,那计算机是如何快速又精准的找到需要使用的数据的呢?答案是通过存储空间的编号,没错内存在给数据分配存储空间的时候会给该 空间 分配一个 独一无二的编号,通过该编号能快速且无误的找到该数据。这个独一无二的编号我们也叫做 地址,就是这个存储空间的地址。到这里,童鞋们在想想我之前说的 指针是指向内存中指定位置元素的“工具”,是通过什么来指呢?在看看这里 独一无二的编号,不知你是否灵光一现,想到了这二者之间微妙的关系!没错指针就是通过编号来指向或找到我们所需要的元素(数据),想到这些,童鞋我觉得你应该知道指针是啥了以及它是干啥的。是的,指针就是独一无二的编号,也叫地址(这种说法比较大众),这就是指针的本质!!!它的作用就是在内存中快速找到我们需要的数据。
那指针能干啥呢?通过上面的分享,你应该能大概猜到,那就是指针能快速的访问到我们所需要的数据,即通过指针我们就能快速找到它所指向的那一块存储空间进而访问其中的数据。
为什么我们要学习指针呢?我个人为有以下几点:
1.相较于其他访问内存的方法,指针的特点就是访问速度快,哎,不拖泥带水也不拐弯抹角,就很直接像直流电一样,一瞬间就到了(有点夸张,但理是这个理);2.通过学习指针,能让我们了解数据在内存中是如何存储的以及内存编号是如何分配的。
好了,底层的原理给童鞋们说的差不多了,现在给大家介绍指针的写法代码如下:
int main()
{
int num1 = 10;
int* p = &num1;
char num2 = 'c';
char* p1 = &num2;
double num3 = 3.14;
double* p2 = &num3;
float arr[10] = { 0 };
float* p3 = arr;
printf("%p\n", p);
printf("%p\n", p1);
printf("%p\n", p2);
printf("%p\n", p3);
return 0;
}
指针的格式为:内置的数据类型 + *(即星号);以第一个为例:int* p =&num1;指针格式就是:int*, p代表指针变量。分别解释,int* p ,其中int指明该指针指向的类型,*表示后面的p变量是一个指针变量。&num1是取num1的地址,&为取地址符,之前说过指针就是地址,所以应该这么写。
OK,今天就分享这些,若对你有益,请你给俺点个赞,如果可以的话可以成为俺的粉丝,后续我会继续从另外一个角度带你学习C语言。最后还是那句话,愿你们能收益!