指针和引用.ppt
文本预览下载声明
2、实参用数组名,形参用指针变量 void main(void) { int a [10]; ...... f(a, 10); ..... } f(int *x, int n ) { ...... } 实参数组 形参指针 3、形参实参都用指针变量 void main( ) { int a [10],*p; p=a; ...... f(p, 10); ..... } f(int *x, int n ) { ...... } 实参指针 形参指针 实参指针变量调用前必须赋值 4、实参为指针变量,形参为数组名 void main( ) { int a [10],*p; p=a; ...... f(p, 10); ..... } f(int x[ ], int n ) { ...... } 实参指针 形参数组 将数组中的n个数按相反顺序存放。 void inv(int x[ ], int n) { int t, i, j, m=(n-1)/2; for (i=0;i=m; i++) { j=n-1-i; t=x[i]; x[i]=x[j]; x[j]=t; } } void main( ) { int i, a[10]={3,7,9,11,0,6,7,5,4,2}; inv(a,10); for (i=0;i10; i++) couta[i]‘\t’; } 2 4 5 7 6 0 11 9 x[9] x[8] x[7] x[6] x[5] x[4] x[3] x[2] x[1] x[0] a[9] a[8] a[7] a[6] a[5] a[4] a[3] a[2] a[1] a[0] x, a 3 7 x与a数组指向同一段内存 void inv(int *x, int n) { int *p, t, *i, *j, m=(n-1)/2; i=x; j=x+n-1; p=x+m; for (; i=p; i++,j--) { t=*i; *i=*j; *j=t; } } void main( ) { int i, a[10]={3,7,9,11,0,6,7,5,4,2}; inv(a,10); for (i=0;i10; i++) couta[i]‘\t’; } 用指针变量来接受地址 2 4 5 7 6 0 11 9 x[9] x[8] x[7] x[6] x[5] x[4] x[3] x[2] x[1] x[0] a[9] a[8] a[7] a[6] a[5] a[4] a[3] a[2] a[1] a[0] x, a 3 7 i j p 编写函数 int fun(int x, int *pp),其功能是,求出能整除x且不是偶数的各整数,并按照从小到大的顺序放在pp指向的内存中,函数返回值为这些整数的个数。若x的值为30, 数组中的数为1,3,5,15,函数返回4。 int fun(int x, int *pp) { int k=0; for(int i=1;ix;i++) { if(i%2x%i==0) { *(pp++)=i; k++; } } return k; } void main(void) { int a[1000],x,n; cinx; n=fun(x,a); for(int i=0;in;i++) couta[i]\t; coutendl; } 输入一行字符串,将字符串中所有下标为奇数位置上的字母转换为大写(若不是小写字符则不必转换)。 void change(char *pchar) { while(*pchar) { if(*pchar=a*pchar=z) *pchar=*pchar-32; pchar++; if(*pchar==0) break; pchar++; } } void main(void) { char str[100]; cin.getline(str,100); change(str); coutstrendl; } 数组名作函数参数 数组名可以作函数的实参和形参,传递的是数组的地址。这样,实参、形参
显示全部