- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
[理学]C南京邮电大学语言课件第9章
* 第 9 章 指 针 9.1 指针变量 9.1.1 指针的基本概念 9.1.2 指针变量的定义与引用 9.1.3 指针变量作为函数参数 9.2 指针数组 9.3 数组与指针 9.3.1 一维数组与指针 9.3.2 二维数组与指针 9.3.3 数组指针作为函数参数 9.4 函数与指针 9.4.1 用函数指针变量调用 函数 9.4.2 函数指针变量作为函 数参数 9.4.3 返回指针值的函数 指针变量 9.1 教学进程 9.1.1 指针的基本概念 在C语言中,可以定义一种称为指针类型的变量,这种变量是专门用 以存放其他变量所占存储空间的首地址。在程序执行过程中,当要存取 一个变量值时,可以首先从存放变量地址的指针变量中取得该变量的存 储地址,然后再从该地址中存取该变量值。 在C语言中对内存数据(如变量、数组元素等)的存取有 两种方法: 指在程序执行过程中需要存取变量值时,直接用变量 名存取变量所占内存单元中的内容。 (1)直接存取 例如,下列两个语句所构成的程序段中: int x=3,y; y=2*x+3; 指针的基本概念 教学进程 指为了要存取一个变量值,首先从存放变量地址的指针 变量中取得该变量的存储地址,然后再从该地址中存取该变量值。简单 地说,在这种存取方式中,存取变量的值是通过存取指针变量所“指向” 的内存单元中的内容。在此,所谓“指向”,是通过地址来体现的。 (2)间接存取 一个变量的地址称为该变量的“指针”。如x值称为变量x的指针。 由于一个变量要占多个内存单元,因此,所谓变量的地址一般均指 首地址(即变量所占内存单元中第一个单元的地址)。 专门用于存放其他变量地址的变量称为指针变量。例如,s为指针 变量,它既可以存放整型变量x的地址,也可以存放整型变量y的地址。 由上可知,指针变量的值为地址,普通变量的值为数据。 “*”为指针运算符。 指针变量的定义与引用 9.1.2 ● 在程序中定义了指针变量后,就可以用取地址运算符“”将同类型变 量的地址赋给它,然后就可以间接存取该同类型变量的值。 教学进程 ● 变量的指针就是变量的地址,即指针变量用于存放变量的地址(即指 向变量)。 定义指针变量的一般形式为 类型标识符 *指针变量名; 在定义指针变量时要注意以下几点: 1)指针变量名前的“*”只表示该变量为指针变量,以便区别于 普通变量的定义,而指针变量名不包含该“*”。 例如,在说明语句 int x,*s; 中说明了s是一个指针变量,但不能说*s是指针变量。 在表达式中,变量前加“*”表示间接存取。 例如,赋值语句 *s=3;表示将整型数据3赋给由指针变量s所指向的变量。 指针变量的定义与引用 教学进程 #include stdio.h main() { double x=0.11,y=0.1; double *p,*q; /*定义双精度实型指针变量p与q*/ p=x; q=y; /*p指向x,q指向y*/ printf(x=%u,y=%u\n,x,y); /*输出变量x与y的地址*/ printf(“p=%u,q=%u\n”,p,q);/*输出指针变量p与q中存放的地址*/ printf(x=%f,y=%f\n,x,y); /*输出变量x与y的值*/ printf(“*p=%f,*q=%f\n”,*p,*q); /*输出指针变量p与q所指 向的变量值*/ } 【例9-1】 设有下列C程序: x=65492,y=65500 /*变量x与y的地址*/ p=65492,q=65500 /*指针变量p与q中存放的地址*/ x=0.110000,y=0.100000 /*变量x与y的值*/ *p=0.110000,*q=0.100000 /*指针变量p与q所指向的
文档评论(0)