指针指针!!
Posted whtmomo
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了指针指针!!相关的知识,希望对你有一定的参考价值。
认识指针以及学会使用指针
本人对于指针的认识只是停留在如何基础的使用的层面上,指针是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.指针类型作为函数返回类型
希望大家支持
以上是关于指针指针!!的主要内容,如果未能解决你的问题,请参考以下文章