例10.4输入a、b、C三个整数,按大小顺序输出 swap (int pt1 int pt2) f int p** ptl=*pt2; pt2=p;y exchange(int *ql, int g2, int *g3) dif (*qI*g2) swap (q1, g2) if (*ql<*q3) swap(q1, q3) if (*q2< *q3) swap (q2, q3);
例10.4 输入a、b、c三个整数,按大小顺序输出。 swap(int *pt1 ,int *pt2) {int p; p=*p1; *ptl=*pt2; *pt2=p; } exchange(int *q1,int *q2,int *q3) {if(*ql<*q2) swap (q1,q2); if(*ql<*q3)swap(q1,q3); if(*q2< *q3) swap (q2,q3); }
main () int a, b, C p2 ,*p3 scanf (3%d, %d%d, &a,&b, &c) p=&a;p2=&b;p3=&c; exchange (p1, p2, p3) printf( \n%d, %d, %d\ n",a, b, c; 运行情况如下: 输入:3,2,4 输出:4,3,2
main() { int a,b,c,*p2, *p3; scanf(”%d,%d%d",&a,&b,&c); pl=&a;p2=&b;p3=&c; exchange (p1,p2,p3); printf("\n%d,%d,%d\n",a,b,c); } 运行情况如下: 输入:3,2,4 输出:4,3,2
10.3数组与指针 内容:指向数组元素的指针变量及其应用 指向一维数组的指针变量及其应用 数组的指针是数组的起始地址,数组元素的指针是元素的地址。 引用数组可以用下标法,也可以用指针法,通过指向数组的元素的指针找 到数组元素。 使用指针法能使目标程序占内存少,运行速度快
10. 3 数组与指针 内容:指向数组元素的指针变量及其应用 指向一维数组的指针变量及其应用 数组的指针是数组的起始地址,数组元素的指针是元素的地址。 引用数组可以用下标法,也可以用指针法,通过指向数组的元素的指针找 到数组元素。 使用指针法能使目标程序占内存少,运行速度快
、指向数组元素的指针 1、定义,同变量的指针定义相同 类型标示符*变量名 如:inta[10; int Pi float b[10] float *pl 类型相同 2、赋值,将某元素或数组的首地址赋给指针变量。 如:inta[10],*p; p=&a[0] 或p=a; 可定义时赋值,如: int a[10]; int*p=&a[o;或int*=a; (此与语句*p=&a[0]、p=a不同) 注意:对p赋的是地址,而不是数值
一、指向数组元素的指针 1、定义, 同变量的指针定义相同 类型标示符 * 变量名 如: int a[10]; int *p; float b[10]; float *p1; ---类型相同 2、赋值,将某元素或数组的首地址赋给指针变量。 如: int a[10], *p; p=&a[0]; 或 p=a; 可定义时赋值, 如: int a[10]; int *p=&a[0]; 或 int *p=a; (此与语句 *p=&a[0] 、p=a 不同) 注意:对p赋的是地址,而不是数值
、通过指针引用数组元素 元素赋值、取值 A数组 如:inta[10]*p; p,(2000 a P=a; p+,a+I a[] p a[2] *p=1;相当于a[0]=1; p+3a+34 a[3] 1、各元素地址(用以上定义) 指针p增一便指向下一单元。所以 p+La+ a[ 1 指向a[0 p+1 指向 p+2指向 p+7, a+7 a[7 p+8,a+8 a[8] +9a+9 p+ 指向 a p+9指向a[9]
二、通过指针引用数组元素 元素赋值、取值 如: int a[10],*p; p=a; *p=1; 相当于 a[0]=1; 1、各元素地址(用以上定义) 指针 p 增一便指向下一单元。 所以 p 指向 a[0] p+1 指向 a[1] p+2 指向 a[2] : p+i 指向 a[i] : p+9 指向 a[9] a[0] a[1] a[2] a[3] a[ i] a[7] a[8] a[9] p p, ( 2000) p+1,a+1 p+2,a+2 p+3,a+3 p+i,a+i p+7,a+7 p+8,a+8 p+9,a+9 1 2 3 4 8 9 0 2000 A数组