四川小自考 四川小自考课程购买入口

网友整理指针的学习方法

发布日期:2018-05-23 12:26:51 编辑整理:四川小自考网网 【字体: 【加入自考交流群】

  这是我从网上找的,然后整理了一下。希望会对大家有所帮助。
  
  前言
  
  指针,一直被认为是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]       

本文标签:四川小自考 串讲笔记 网友整理指针的学习方法

转载请注明:文章转载自(http://www.scxzk.net

本文地址:http://www.scxzk.net/html/cj/5284.html


《四川小自考网网》免责声明:

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

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

相关《网友整理指针的学习方法》的文章

四川小自考网-便捷服务