欢迎您访问浙江自考网!网站为考生提供浙江自考信息服务,供学习交流使用,非政府官方网站,官方信息以浙江省招生考试院为准 登录  网站导航

浙江自考网

自考热线:16657169113

自考办电话 | 在线提问 | 公众号

网友整理指针的学习方法

编辑整理:浙江自考网 发表时间:2018-05-23   【

  这是我从网上找的,然后整理了一下。希望会对大家有所帮助。
  
  前言
  
  指针,一直被认为是C语言中的精华。只有掌握了指针,你才能说你学会了C语言。
  
  相当初,我是把指针这一章足足看了三遍才算是“学了这一章”下面的文字是阿容
  
  写的,对我学习C语言的指针帮助很大。好东西不敢独享,今天把它贴出来,希望
  
  大家也会有所帮助。
  
  第一章。指针的概念?
  
  指针是一个特殊的变量,它里面存储的数值被解释成为内存里的一个地址。
  
  要搞清一个指针需要搞清指针的四方面的内容:指针的类型,指针所指向的
  
  类型,指针的值或者叫指针所指向的内存区,还有指针本身所占据的内存区。让
  
  我们分别说明。
  
  先声明几个指针放着做例子:
  
  例一:
  
  (1)int *ptr;
  
  (2)char *ptr;
  
  (3)int **ptr;
  
  (4)int (*ptr);
  
  (5)int *(*ptr);
  
  如果看不懂后几个例子的话,请参阅我前段时间贴出的文章<<如何理解c和c
  
  ++的复杂类型声明>>.
  
  1.指针的类型。
  
  从语法的角度看,你只要把指针声明语句里的指针名字去掉,剩下的部分就
  
  是这个指针的类型。这是指针本身所具有的类型。让我们看看例一中各个指针的
  
  类型:
  
  (1)int *ptr; //指针的类型是int *
  
  (2)char *ptr; //指针的类型是char *
  
  (3)int **ptr; //指针的类型是int **
  
  (4)int (*ptr); //指针的类型是int(*)
  
  (5)int *(*ptr); //指针的类型是int *(*)
  
  怎么样?找出指针的类型的方法是不是很简单?
  
  2.指针所指向的类型。
  
  当你通过指针来访问指针所指向的内存区时,指针所指向的类型决定了编译
  
  器将把那片内存区里的内容当做什么来看待。
  
  从语法上看,你只须把指针声明语句中的指针名字和名字左边的指针声明符
  
  *去掉,剩下的就是指针所指向的类型。例如:
  
  (1)int *ptr; //指针所指向的类型是int
  
  (2)char *ptr; //指针所指向的的类型是char
  
  (3)int **ptr; //指针所指向的的类型是int *
  
  (4)int (*ptr); //指针所指向的的类型是int()
  
  (5)int *(*ptr); //指针所指向的的类型是int *()
  
  在指针的算术运算中,指针所指向的类型有很大的作用。
  
  指针的类型(即指针本身的类型)和指针所指向的类型是两个概念。当你对C越
  
  来越熟悉时,你会发现,把与指针搅和在一起的“类型”这个概念分成“指针的
  
  类型“和”指针所指向的类型“两个概念,是精通指针的关键点之一。我看了不
  
  少书,发现有些写得差的书中,就把指针的这两个概念搅在一起了,所以看起书
  
  来前后矛盾,越看越糊涂。
  
  3.指针的值,或者叫指针所指向的内存区或地址。
  
  指针的值是指针本身存储的数值,这个值将被编译器当作一个地址,而不是
  
  一个一般的数值。在32位程序里,所有类型的指针的值都是一个32位整数,因为
  
  32位程序里内存地址全都是32位长。
  
  指针所指向的内存区就是从指针的值所代表的那个内存地址开始,长度为si
  
  zeof(指针所指向的类型)的一片内存区。以后,我们说一个指针的值是XX,就相
  
  当于说该指针指向了以XX为首地址的一片内存区域;我们说一个指针指向了某块
  
  内存区域,就相当于说该指针的值是这块内存区域的首地

[1]       




浙江自考网课程中心

浙江自考网声明:

1、由于各方面情况的调整与变化,本网提供的考试信息仅供参考,考试信息以省考试院及院校官方发布的信息为准。

2、本网信息来源为其他媒体的稿件转载,免费转载出于非商业性学习目的,版权归原作者所有,如有内容与版权问题等请与本站联系。

浙江自考便捷服务

浙江自考网微信交流群