学校动态
学院首页 招生专业 成考简章
自考简章 常见问题 网上报名

指针的学习方法

来自:武汉科技大学自考网   2011-05-30    浏览

    前言
  
  指针,一直被认为是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,就相

Copyright 2009-2023 武汉科技大学自考 All rights reserved

声明:本站为武汉科技大学自考交流信息网站,敬请考生以权威部门公布的正式信息为准