什么是C言语指针 C言语指针教程.doc

  1. 1、本文档共6页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
引自 /dnfiwaigua C言语指针教程 (一)啥是C言语指针 指针是C言语中广泛运用的一种数据类型。运用指针编程是C言语最主要的个性之一。运用指针变量能够表明各种数据结构;能很方便地运用数组和字符串;并能象汇编言语一样处置内存地址,然后编出精练而高效的程序。指针极大地丰厚了C言语的功用。学习指针是学习C言语中最重要的一环,能否正确理解和运用指针是咱们是不是把握C言语的一个象征。一起,指针也是C言语中最为艰难的一部分,在学习中除了要正确理解基本概念,还有必要要多编程,上机调试。只需作到这些,指针也是不难把握的。 (二) C言语地址指针的基本概念 在计算机中,一切的数据都是寄存在存储器中的。通常把存储器中的一个字节称为一个内存单元,不一样的数据类型所占用的内存单元数不等,如整型量占2个单元,字符量占1个单元等,在前面已有详细的介绍。为了正确地拜访这些内存单元,有必要为每个内存单元编上号。依据一个内存单元的编号即可精确地找到该内存单元。内存单元的编号也叫做地址。已然依据内存单元的编号或地址就能够找到所需的内存单元,所以通常也把这个地址称为指针。 内存单元的指针和内存单元的内容是两个不一样的概念。 能够用一个浅显的比如来阐明它们之间的联络。咱们到银行去存取款时,银行工作人员将依据咱们的帐号去找咱们的存款单, 找到之后在存单上写入存款、取款的金额。在这里,帐号即是存单的指针, 存款数是存单的内容。关于一个内存单元来说,单元的地址即为指针,其间寄存的数据才是该单元的内容。在C言语中,答应用一个变量来寄存指针,这种变量称为指针变量。因而,一个指针变量的值即是某个内存单元的地址或称为某内存单元的指针 设有字符变量C,其内容为“K”(ASCII码为十进制数 75),C占用了011A号单元(地址用十六进数表明)。设有指针变量P,内容为011A,这种状况咱们称为P指向变量C,或说P是指向变量C的指针。 严格地说,一个指针是一个地址,是一个常量。而一个指针变量却能够被赋予不一样的指针值,是变量。但常把指针变量简称为指针。为了防止混杂,咱们中约好:“指针”是指地址,是常量,“指针变量”是指取值为地址的变量。界说指针的意图是为了经过指针去拜访内存单元。 已然指针变量的值是一个地址,那么这个地址不只能够是变量的地址,也能够是其它数据结构的地址。在一个指针变量中寄存一个数组或一个函数的首地址有何意义呢?因为数组或函数都是接连寄存的。经过拜访指针变量取得了数组或函数的首地址,也就找到了该数组或函数。这样一来,但凡呈现数组,函数的当地都能够用一个指针变量来表明,只需该指针变量中赋予数组或函数的首地址即可。这样做,将会使程序的概念非常明白,程序自身也精练,高效。在C言语中,一种数据类型或数据结构往往都占有一组接连的内存单元。用“地址”这个概念并不能极好地描绘一种数据类型或数据结构,而“指针”尽管实际上也是一个地址,但它却是一个数据结构的首地址,它是“指向”一个数据结构的,因而概念更为明白,表明更为清晰。 这也是引进“指针”概念的一个重要原因。 (三)C言语变量的指针和指向变量的指针变量—界说一个指针变量 变量的指针即是变量的地址。寄存变量地址的变量是指针变量。即在C言语中,答应用一个变量来寄存指针,这种变量称为指针变量。因而,一个指针变量的值即是某个变量的地址或称为某变量的指针。 为了表明指针变量和它所指向的变量之间的联络,在程序顶用“*”符号表明“指向”,例如,i_pointer代表指针变量,而*i_pointer是i_pointer所指向的变量。因而,下面两个句子效果一样: ????? i=3; ????? *i_pointer=3; 第二个句子的意义是将3赋给指针变量i_pointer所指向的变量。 10.1.1界说一个指针变量 对指针变量的界说包含三个内容: 指针类型阐明,即界说变量为一个指针变量; 指针变量名; 变量值(指针)所指向的变量的数据类型。 其通常办法为:类型阐明符? *变量名; 其间,*表明这是一个指针变量,变量名即为界说的指针变量名,类型阐明符表明本指针变量所指向的变量的数据类型。 例如: ??? int *p1; 表明p1是一个指针变量,它的值是某个整型变量的地址。或者说p1指向一个整型变量。至于p1终究指向哪一个整型变量,应由向p1赋予的地址来决议。 再如: ??? int *p2;??????? /*p2是指向整型变量的指针变量*/ ??? float *p3;????? /*p3是指向浮点变量的指针变量*/ ??? char *p4;?????? /*p4是指向字符变量的指针变量*/ (四)C言语变量的指针和指向变量的指针变量—指针变量的引证 指针变量同通常变量一样,运用之前不只需界说阐明,并且有必要赋予详细的值。未经赋值

文档评论(0)

asd522513656 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档