码迷,mamicode.com
首页 > 其他好文 > 详细

指针指针!!

时间:2019-10-22 18:53:04      阅读:98      评论:0      收藏:0      [点我收藏+]

标签:重庆   mda   个人   指针   地址   --   指南   style   变量   

认识指针以及学会使用指针

本人对于指针的认识只是停留在如何基础的使用的层面上,指针是C语言的核心,也是因为指针,使得C语言能够如此的灵活多变。

注:本文章也仅限于个人观点,如有纰漏,还望指出,肯请谅解

(一)认识指针

指针,什么是指针,意思是指向什么东西的标志。

指南针指向南方,是指针;高速路上的指示路标箭头,那也是指针。所以,不要害怕指针这个新名词,任何名称诞生的时候都是为了让人们容易理解容易记住。所以呢,,不要把它想得太复杂。。

与如上所说的指针类同,C语言的指针也是指向某个东西的标志。那么C语言指针指向的是什么呢?
是地址,那什么又是地址呢?
计算机的内存是一片连续的空间,每一个子单元都有它的地址,也就是它的位置,地址是独一无二的。就相当于你家庭住址—重庆市江北区XX街道XX小区X单元。

那么,指针也就是家庭住址的路标了,也就是一个箭头,它会在上面标明,“我指的方向是善良先生的家!”

懂了吧,联系生活实际来想这个问题就不会那么枯燥无味,也更好理解。

(二)定义指针类型

1 int a = 4; //类型为int整型的变量a赋值为4
2 int *p; //定义一个指向int类型的指针变量p
3 //相似的,char *p 意味着指向char类型的变量p
4 p = &a; //&符号是取地址符号,scanf()函数里的&符号的作用也是一样
5 //那么,到这里,指针p就是a的指针了。

 

那么,要如何使用使用指针呢?

printf("%d",*p); //*p的作用是取值,也就是获取它所指向的位置的值

 

然而,有一个对于大家可能有点疑惑的问题就产生了,如下:

int *p;
printf("%d",*p); //这两个*p的作用是不一样的

 

为什么都是*p 含义会不一样呢

int *p;
int* p; //这两种定义方式是相同的
/*这里的*符号的含义是:将p命名为一个指针;
为了容易懂哈,可以这么想
你是一个皇上,你又至高无上的权力
现在,你想要把p这个人命名为“指针”
为了好区分它的身份,所以你给了它一个官印“*”
*/
*p = 4; //而这里的*号是不一样的,这里的作用是取值,取值取值,也就是取出它的值,仅此而已

 

对于指针的基础认识和定义方式在这里讲完了,我个人认为还是挺通俗易懂的吧。。如果还有不懂的,请在下方留言~
接下来会将两个内容:1.指针类型做函数形参 2.指针类型作为函数返回类型
希望大家支持

指针指针!!

标签:重庆   mda   个人   指针   地址   --   指南   style   变量   

原文地址:https://www.cnblogs.com/whtmomo/p/11721333.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!