当前位置:天才代写 > tutorial > C语言/C++ 教程 > 彻底搞定C语言指针 第二篇

彻底搞定C语言指针 第二篇

2017-11-03 08:00 星期五 所属: C语言/C++ 教程 浏览:338

二、指针是什么对象

想说弄懂你不容易啊!我们很多初学指针的人都要这样的感应。我经常在思索它,为什么呢?其实糊口中随处都有指针。我们也随处在利用它。有了它我们的糊谈锋越发利便 了。没有指针,那糊谈锋不利便。不信?你看下面的例子。

这是一个糊口中的例子:好比说你要 我借给你一本书,我到了你宿舍,可是你人不在宿舍,于是我把书放在你的2层3号的书架上,并写了一 张纸条放在你的桌上。纸条上写着:你要的书在第2层3号的书架上。当你返来时,看到这张纸条。你就 知道了我借与你的书放在哪了。你想想看,这张纸条的浸染,纸条自己不是书,它上面也没有放着书。 那么你又如何知道书的位置呢?因为纸条上写着书的位置嘛!其实这张纸条就是一个指针了。它上面的 内容不是书自己,而是书的地点,你通过纸条这个指针找到了我借给你的本书。

那么我们C,C++ 中的指针又是什么呢?请继承跟我来吧,看下面看一个申明一整型指针变量的语句如下:

int * pi;

pi是一个指针,虽然我们知道啦,可是这样说,你就觉得pi必然是个何等出格的对象了。其 实,它也只过是一个变量罢了。与上一篇中说的变量并没有实质的区别。不信你看下面图。

内存 地点→6     7   8      9     10     11      12     13      14

————————————————————–

…|    30      |  ‘t’ |      |      |      |      |       |      |……

————————————————— ———–

变量 |→i   ←|→a   ←|       |→ pi       ←|

(说明:这里我假设了指针只占2个字节宽度,实际上在32位系统中,指针的宽度 是4个字节宽的,即32位。)由图示中可以看出,我们利用int *Pi申明指针变量; 其实是在内存的某处 申明一个必然宽度的内存空间,并把它定名为Pi.你能在图中看出pi与前面的i,a 变量有什么本质区别 吗,没有,虽然没有!pi也只不外是一个变量罢了嘛!那么它又为什么会被称为指针?要害是我们要让 这个变量所存储的内容是什么。此刻我要让pi成为真正有意义上的指针。请接着看下面语句:

pi=&i;

你应该知道 &i是什么意思吧!再次提醒你啦:这是返回i变量的地点编 号。整句的意思就是把i地点的编号赋值给pi,也就是你在pi上写上i的地点编号。功效如下图所示:

内存地点→6     7   8   9   10     11    12     13     14

——————————————————————

…|      30      |  ‘t’  |      |      |     6      |       |      |……

———————————————– ——————-

变量 |→i   ←|→a    ←|       |→ pi     ←|

你看,执行完pi=&i;后,在图示中的系统中,pi的值是6.这 个6就是i变量的地点编号,这样pi就指向了变量i了。你看,pi与那张纸条有什么区别?pi不就是那张纸 条嘛!上面写着i的地点,而i就是谁人本书。你此刻看懂了吗?因此,我们就把pi称为指针。所以你要 记着,指针变量所存的内容就是内存的地点编号!好了,此刻我们就可以通过这个指针pi来会见到i这个 变量了,不是吗?。看下面语句:

printf(“%d”,*pi);

那么*pi什么意 思呢?你只要这样读它:pi内容所指的地点的内容(嘻嘻,看上去仿佛在绕口令了),就pi这张“ 纸条”上所写的位置上的那本 “书”——i .你看,Pi内容是6,也就是说 pi指向内存编号为6的地点。*pi嘛!就是它所指地点的内容,即地点编号6上的内容了。虽然就是30的值 了。所以这条语句会在屏幕上显示30.也就是说printf(“%d”,*pi);语句等价于printf ( “%d”, i ) ,请团结上图好好体会吧!列位尚有什么疑问,可以发Email: yyf977@163.com.

到此为止,你把握了雷同&i , *pi写法的寄义和相关操纵吗。总的一句话 ,我们的纸条就是我们的指针,同样我们的pi也就是我们的纸条!剩下的就是我们如何应用这张纸条了 。最后我给你一道题:

措施如下

char  a,*pa
a=10
pa=&a
*pa=20
printf( “%d”, a)

你能直接看出输出的功效是什么吗?如 果你能,我想本篇的目标就到达了。好了,就说到这了。Happy to Study!在下篇中我将谈谈“指 针的指针”即对int * * ppa;中ppa 的领略。

 

    关键字:

天才代写-代写联系方式