• c语言指针难 > 指针是C语言的精华部分
  • 指针是C语言的精华部分

    免费下载 下载该文档 文档格式:PDF   更新时间:2000-12-07   下载次数:0   点击次数:1
    文档基本属性
    文档语言:
    文档格式:PDF
    文档作者:
    关键词:
    主题:
    备注:
    点击这里显示更多文档属性
    下载
    第6章 指

    指针是C语言的精华部分,通过利用指针,我们能很好地利用内存资源,使其发挥最大的 效率.有了指针技术,我们可以描述复杂的数据结构,对字符串的处理可以更灵活,对数组 的处理更方便,使程序的书写简洁,高效,清爽.但由于指针对初学者来说,难于理解和掌 握,需要一定的计算机硬件的知识做基础,这就需要多做多练,多上机动手,才能在实践中 尽快掌握,成为 C的高手.
    6.1 指针与指针变量
    过去,我们在编程中定义或说明变量,编译系 统就为已定义的变量分配相应的内存单元,也就是 说,每个变量在内存会有固定的位置,有具体的地 址.由于变量的数据类型不同,它所占的内存单元 数也不相同.若我们在程序中做定义为:
    int a=1, b=2; float x=3.4, y=4.5; double m=3.124; char ch1='a', ch2='b';
    2008 4.5 变量y 2000 2002 2004 1 2 3.4 变量a 变量b 变量x
    让我们先看一下编译系统是怎样为变量分配内 存的.变量 a , b是整型变量,在内存各占 2个字节; x , y是实型,各占 4个字节; m是双精度实型,占 8个 字节; c h 1 , c h 2是字符型,各占 1个字节.由于计算 机内存是按字节编址的,设变量的存放从内存 2 0 0 0 单元开始存放,则编译系统对变量在内存的安放情 况为图6-1所示. 变量在内存中按照数据类型的不同,占内存的
    3.124 2012 2020 2021 a b
    变量m
    变量ch1 变量ch2
    图6-1 不同数据类型的变量在内存中 占用的空间
    大小也不同,都有具体的内存单元地址,如变量 a 在内存的地址是 2 0 0 0,占据两个字节后, 变量 b的内存地址就为 2 0 0 2 ,变量 m的内存地址为 2 0 1 2等.对内存中变量的访问,过去用 scanf("%d%d%f",&a,&b,&x) 表示将数据输入变量的地址所指示的内存单元.那么,访问变量, 首先应找到其在内存的地址,或者说,一个地址唯一指向一个内存变量,我们称这个地址为 变量的指针.如果将变量的地址保存在内存的特定区域,用变量来存放这些地址,这样的变 量就是指针变量,通过指针对所指向变量的访问,也就是一种对变量的"间接访问" . 设一组指针变量 p a,p b,p x,p y,p m,p c h 1,p c h 2,分别指向上述的变量 a,b,x,y, m,ch1,ch2,指针变量也同样被存放在内存,二者的关系如图 6-2所示: 在图6 - 2中,左部所示的内存存放了指针变量的值,该值给出的是所指变量的地址,通过 该地址,就可以对右部描述的变量进行访问.如指针变量 p a的值为2 0 0 0,是变量 a在内存的地
    92
    C语言程序设计
    下载
    址.因此, pa就指向变量 a.变量的地址就是指针,存放指针的变量就是指针变量.
    2000 1000 1002 1004 1006 1008 1010 1012 1014 1016 2020 2021 a b 变量ch1 变量ch2 2000 2002 2004 2008 2012 2020 2021 pa pb px py pm 2008 pch1 pch2 2012 3.124 4.5 变量y 2002 2 3.4 变量b 变量x 1 变量a
    2004
    变量m
    图6-2 指针变量与变量在内存中的关系
    6.2 指针变量的定义与引用
    6.2.1 指针变量的定义 在C程序中,存放地址的指针变量需专门定义;
    int *ptr1; float *ptr2; char *ptr3;
    表示定义了三个指针变量 p t r 1,p t r 2,p t r 3.p t r 1可以指向一个整型变量, p t r 2可以指向一 个实型变量, ptr3可以指向一个字符型变量,换句话说, ptr1,ptr2,ptr3可以分别存放整型变 量的地址,实型变量的地址,字符型变量的地址. 定义了指针变量,我们才可以写入指向某种数据类型的变量的地址,或者说是为指针变 量赋初值:
    int *ptr1,m= 3; float *ptr2, f=4.5; char *ptr3, ch='a'; ptr1=&m; ptr2=&f; ptr3=&ch;
    上述赋值语句 p t r 1 = & m表示将变量m的地址赋给指针变量 p t r 1,此时 p t r 1就指向m.三条 赋值语句产生的效果是 ptr1指向m;ptr2指向f;ptr3指向ch .用示意图 6-3描述如下:

    下一页

  • 下载地址 (推荐使用迅雷下载地址,速度快,支持断点续传)
  • 免费下载 PDF格式下载
  • 您可能感兴趣的
  • c语言指针  c语言指针视频教程  c语言指针函数编程题  c语言数组与指针  c语言指针的用法  c语言指针视频  c语言答案指针  c语言指针讲解  c语言指针教程