也可以直接使用数组名,将上述程序改为 #include ' stdio. h't aino f int a[ 10 , i for(i=0;i<10;i=i+1) scanf(""%d", ati); printf("\n"); for(i=0;i<10;i=i+1) printf("%5d\n", (ati));
也可以直接使用数组名,将上述程序改为 #include "stdio.h" main() { int a[10],i; for (i=0;i<10;i=i+1) scanf("%d",a+i); printf("\n"); for (i=0;i<10;i=i+1) printf("%5d\n",*(a+i)); }
还可以使用指针变量,将上述程序改为 include stdio. h main Lint a 10,*p=a, i or(i=0;i<10;i=i+1) scanf(%d", pti) printf(In for(i=0;i<10;i=i+1) printf("%5d\n", (p+i));
还可以使用指针变量,将上述程序改为 #include "stdio.h" main() { int a[10], *p=a,i; for (i=0;i<10;i=i+1) scanf("%d",p+i); printf("\n"); for (i=0;i<10;i=i+1) printf("%5d\n",*(p+i)); }
使用指针变量后,指针变量所指向的数组元素也 可以用下标的形式,又可以将上述程序改为 #include ' stdio. h maln (0 int a[10,*p=a, i; for(i=0;i<10;i=i+1) scanf(%d, p+i; printf(in"); for(i=0;i<10;i=i+1) printf("%5dn"pli); 以上四个程序是等价的
使用指针变量后,指针变量所指向的数组元素也 可以用下标的形式,又可以将上述程序改为 #include "stdio.h" main() { int a[10], *p=a,i; for (i=0;i<10;i=i+1) scanf("%d",p+i); printf("\n"); for (i=0;i<10;i=i+1) printf("%5d\n",p[i]); } 以上四个程序是等价的
下面对数组与指针作几点说明: (1)指针变量可以指向数组中的任何一个元素。 (2)用于指向数组或数组元素的指针变量类型必须与数组类 型相同。 (3)C语言规定,当指针变量p指向数组的某一元素时,p+1 将指向下一个元素。 (4)C语言规定,数组名代表数组的首地址,但它是固定不 变的,即不能对数组名进行赋值(即赋以新的地址值)
下面对数组与指针作几点说明: (1)指针变量可以指向数组中的任何一个元素。 (2)用于指向数组或数组元素的指针变量类型必须与数组类 型相同。 (3)C语言规定,当指针变量p指向数组的某一元素时,p+1 将指向下一个元素。 (4)C语言规定,数组名代表数组的首地址,但它是固定不 变的,即不能对数组名进行赋值(即赋以新的地址值)
732数组指针作为函数参数 一般来说,在数组指针作函数参数时,有以下四种情况: (1)实参与形参都用数组名。例如, main 0 f(x, n) f int a 10l: int x, n; { f(a,10);
7.3.2 数组指针作为函数参数 一般来说,在数组指针作函数参数时,有以下四种情况: (1)实参与形参都用数组名。例如, main() f(x,n) { int a[10]; int x[],n; … { … f(a,10); … … … } }