C语言程序设计I_指针与一维数组.ppt
文本预览下载声明
例 将数组a中的n个整数依次减1。(1) void sub(int x[], int n) { int i; for(i=0;in;i++) { x[i]=x[i]-1; } } main() { int i,a[10]={1,2,3,4,5,6,7,8,9,10}; sub(a,10); printf(The array has been changed:\n); for(i=0;i10;i++) printf(%d\n,a[i]); printf(\n); } 实参与形参均用数组 main( ) f (int *x,int n) { int a[10]; { … … f (a, 10) } … } (2) 实参 形参 指针变量 数组名 a a[0] x a[9] 调用函数时,x=a[0], 。通过改变x值,可以指向a数组的任一元素。 例 将数组a中的n个整数依次减1 。 void sub(int *x, int n) { int i; for(i=0;in;i++) *(x+i)= *(x+i)-1; } main() { int i,a[10]={1,2,3,4,5,6,7,8,9,10}; sub(a,10); printf(The array has been changed:\n); for(i=0;i10;i++) printf(%d\n,a[i]); printf(\n); } 实参用数组,形参用指针变量 main( ) f (int x[],int n) { int a[10],*p; { p=a; … … f (p, 10) } … } (3) 实参 形参 数组名 指针变量 a a[0],x[0] p a[9],x[9] 调用函数时,p的值(a或a[0])传给x ,a和x共享一段内存单元。使x[i]值变化,也就是使a[i]值变化。 void sub(int x[], int n) { int i; for(i=0;in;i++) x[i]=x[i]-1; } main() { int i,a[10],*p=a; for(i=0;i10;i++,p++) scanf(%d,p); p=a; sub(p,10); printf(The array has been changed:\n); for(p=a;pa+10;p++) printf(%d\n ,*p); } 实参用指针变量,形参用数组 例 将数组a中的n个整数依次减1 。 main( ) f (int *x,int n) { int a[10],*p; { p=a; … … f (p, 10) } … } (4) 实参 形参 指针变量 指针变量 a a[0]] p,x a[9] 调用函数时,p的值(a或a[0])传给x 。通过改变x值,可以指向a数组的任一元素。 void sub(int *x, int n) {int *p; for(p=x;p(x+n);p++) *p=*p-1; } main() { int i,a[10],*p=a; for(i=0;i10;i++,p++) scanf(%d,p); p=a; sub(p,10);
显示全部