C语言程序设计-第6章-指针.pptVIP

  • 2
  • 0
  • 约1.2万字
  • 约 61页
  • 2018-03-27 发布于江西
  • 举报
C语言程序设计-第6章-指针.ppt

* void swap(int *p1,int *p2) {int *p; printf(调用中交换前:*p1=%d,*p2=%d\n,*p1,*p2); p=p1; p1=p2; p2=p; printf(调用中交换后:*p1=%d,*p2=%d\n,*p1,*p2); } void main() { int x1,x2; scanf(“%d%d”,x1,x2); printf(“1: x1=%d,x2=%d\n”,x1,x2); swap(x1,x2); printf(“2: x1=%d,x2=%d\n”,x1,x2); } 方法 3 编写函数实现两数的互换 10↙ 1: x1=20,x2=10 调用中交换前:*p1=20,*p2=10 调用中交换后:*p1=10,*p2=20 2: x1=20,x2=10 * 主调函数 被调函数 main() { int x1,x2; scanf(“%d%d”,x1,x2); printf(“1:x1=%d,x2=%d\n”, x1,x2); swap(x1,x2); printf(“2:x1=%d,x2=%d\n”, x1,x2); } void swap(int *p1,int *p2) {int *p; printf(“调用中交换前: *p1=%d,*p2=%d\n”,*p1,*p2); p=p1; p1=p2; p2=p; printf(调用中交换后:*p1=%d,*p2=%d\n,*p1,*p2); } x1 x1 实 参 形 参 x2 x2 p1 p2 x1 x2 方法3 p1 p2 20 x1 x2 10 x1 p * 数组名是该数组的指针 a≡a[0],a+1≡a[1], … ,a+4≡a[4] 数组元素的下标表示法: a[0],a[1], … ,a[i], … ,a[4] 数组元素的指针表示法: *(a+0),*(a+1), … ,*(a+i), … ,*(a+4) 6.3 指针与数组 6.3.1 指针与一维数组 1. 建立指针与一维数组的联系 例如: int a[5]; a[0] a[4] a * 用p表示数组元素 下标法: p[0],p[1], … ,p[9] 指针法: *(p+0),*(p+1), … ,*(p+9) a[0] a[9] p 2. 通过指针引用数组元素 例如:int a[10],*p; p = a;(或 p = a[0];) a 6.3.1 指针与一维数组 * 【例6.4】用指针变量引用数组元素,完成给数组元素赋值并输出数组元素。 #include stdio.h void main( ) { int *p,b[5],i; p=b; /* 建立指针和数组关联 */ for (i=0;i5;i++) *p++=i; p=b; /* 注意要把指针重新指向数组首地址 */ for (i=0;i5;i++) printf(b[%d]=%d\t,i,*p++); printf(\n); } 6.3.1 指针与一维数组(续) 运行结果 : b[0]=0 b[1]=1 b[2]=2 b[3]=3 b[4]=4 6.3.1 指针与一维数组(续) 使用指针法访问数组元素需注意几个问题: 作为数组名的指针常量值不可改变,而指针是地址变量,其值可以改变。 利用指针变量访问数组元素,要考虑数组越界问题。 在数组元素的下标表示法中如果采用指针变量,其下标可以出现负值。 在指针变量运算中需要特别注意单目运算符的右结合性。 * 6.3.1 指针与一维数组 * 3. 数组名与函数参数 【例6.5】从键盘输入5个整数,找出其中的最大数(用函数实现),并输出。 p → a[0] a[1] … a[N-1] 主调函数 被调函数 #include stdio.h #define N 10 int max1(int p[ ], int n) /*形参为数组名*/ { int i,max; max=p[0]; for(i=1; in; i++) /* 求最大值 */ if(maxp[i]) max=p[i]; return(max); /* 返回最

文档评论(0)

1亿VIP精品文档

相关文档