- 1、本文档共629页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
例8.2 #include stdio.h void main( ) { int x1, x2, *p1, *p2= x2 ; scanf( “%d%d”, x1, p2 ); //p2是变量x2的地址,可替换x2。 p1 = x1; printf(“*p1=%d,*p2=%d\n”, *p1, *p2 ); p2 = p1 ; printf(“*p1=%d,*p2=%d”, *p1, *p2 ); } 运行结果: 5 4 ↙ *p1=5,*p2=4 5 x1 2000 p1 2000 p2 2000 *p1=5,*p2=5 8.2.4 指针变量作为函数参数 特点: 将一个变量的地址作为实参传送到被调用函数中。 采用“单向值传递”方式(特殊的地址值) 被调用函数不能改变实参指针变量的值, 但可以改变实参指针变量所向指变量的值。 可以得到多个返回值 例8.8 交换两个元素之值 swap( int *x, int *y ) { int t; t=*x; *x=*y; *y=t; } //交换形参指针变量所指向变量的值 void main( ) { int a=10, b=20; printf(“1)a=%d, b=%d\n”, a, b ); swap(a, b); //实参为变量的地址(指针), 地址值传递 printf(“2)a=%d, b=%d\n”,a,b); } 输出结果: 1)a=10, b=20 2)a=20, b=10 a b 10 20 a x y b t *y==b *x==a 10 10 20 20 1. 主函数: 定义变量a、b,并初始化。 2.主函数: 调用swap( ), 将实参的值( 地址 )传递给形参, 使得形参 x,y分别指向a,b。 3.swap( )函数: 交换形参*x、*y的值。即a,b的值。 10 10 //形参为同类型的指针变量 例8.8_2交换形参指针变量的值 swap( int *x, int *y ) { int *t ;t=x; x=y; y=t; } //交换形参指针变量的值 void main( ) { int a=10, b=20; int *p1=a, *p2=b; printf(“1) a=%d, b=%d\n”, *p1, *p2); swap( p1, p2 ); //实参为指针变量 printf(“2) a=%d, b=%d\n”, *p1, *p2); } 输出结果: 1)a=10, b=20 2)a=10, b=20 a b 10 20 p1 p2 a b y x a b a b a t //形参为同类型的指针变量 例8.8_3交换两个元素的值 swap( int *x, int *y ){ int *p; *p=*x; //此语句有问题 *x=*y; *y=*p; } void main( ){ int a = 10, b = 20; swap( a, b); printf(“a=%d, b=%d\n”, a, b);} 例: 写出下列程序的运行结果 #include stdio.h func1( int x, int y, int *a, int *b) { *a=x+y; *b=x-y; } void main( ) { int i=9, j=3, n1, n2; func1( i, j, n1, n2); printf(“n1=%d n2=%d\n”, n1, n2); } 输出结果: n1=12 n2=6 8.3 指针与数组 8.3.1 指针变量的运算 8.3.2 一维数组的指针 8.3.3 数组名作为函数参数 8.3.1 指针变量的运算 实质: 地址的运算 指针可以进行以下运算: 赋值运算: 给指针变量赋值 算术运算: 指针加(减)一个整数 两个指针相减 关系运算: 两个指针之间的比较运算 例: #include stdio.h int a, b; //定义外部变量 extern int max( ); void main( ) {scanf(“%d%d”, a, b); printf(“%d”, max( )); } extern int a, b; //声明外部变量 int max( ) { return (ab?a
您可能关注的文档
- 人教版九年级语文上册《事物的正确答案不止一个》.ppt
- 人教版三年级语文下册《我家跨上了“信息高速路”》.ppt
- 人教版语文三年级上册《陶罐和铁罐》.ppt
- 仁爱英语初中八年级下册Unit6 Topic 2 Section C.ppt
- 如何正确书写化学方程式_.ppt
- 乳腺增生与乳腺炎的症状及治疗.ppt
- 三年级数学下册《除数是一位数的除法复习》.ppt
- 上课《事物的正确答案不止一个》教学.ppt
- 上腔静脉综合征94642.ppt
- 上外:Unit 04_A (第六册,英语综合教程,外教社).ppt
- 《GB/Z 44363-2024致热性 医疗器械热原试验的原理和方法》.pdf
- GB/T 16716.6-2024包装与环境 第6部分:有机循环.pdf
- 中国国家标准 GB/T 44376.1-2024微细气泡技术 水处理应用 第1 部分:亚甲基蓝脱色法评价臭氧微细气泡水发生系统.pdf
- 《GB/T 44376.1-2024微细气泡技术 水处理应用 第1 部分:亚甲基蓝脱色法评价臭氧微细气泡水发生系统》.pdf
- GB/T 44376.1-2024微细气泡技术 水处理应用 第1 部分:亚甲基蓝脱色法评价臭氧微细气泡水发生系统.pdf
- 中国国家标准 GB/T 44315-2024科技馆展品设计通用要求.pdf
- GB/T 44305.2-2024塑料 增塑聚氯乙烯(PVC-P)模塑和挤塑材料 第2部分:试样制备和性能测定.pdf
- 《GB/T 44315-2024科技馆展品设计通用要求》.pdf
- GB/T 44315-2024科技馆展品设计通用要求.pdf
- GB/T 39560.9-2024电子电气产品中某些物质的测定 第9 部分:气相色谱-质谱法(GC-MS)测定聚合物中的六溴环十二烷.pdf
文档评论(0)