8.4.2指针变量的引用【例8-1】演示指针变量的引用void swapi(int x, int y)int temp;temp=x;x=y;y=temp;)void swap2(int*x,int*y)[inttemp;temp=*x;*x=*y;*y=temp;)void swap3(int *x, int *y)(int *temp;temp =x;x =y;y = temp;)void mainO[int a,b;int *pa,*pb;pa=&a;pb=&b;a=10,b=20;swap1(a,b);printf("a=%d,b=%d,*pa=%d,*pb=%d\n",a,b,*pa,*pb);a=10,b=20;swap2(pa,pb);printf("a=%d,b=%d,*pa=%d,*pb=%d\n",a,b,*pa,*pb);a=10,b=20;swap3(pa,pb);printf("a=%d,b=%d,*pa=%d,*pb=%d\n",a,b,*pa,*pb)7口区cx"D:AClc8_11Debuglc8_1-exe兰a-10,b-20,*pa-10*pb-20a=20,b=10,*pa=20,*ph=10=10,b=20,*pa=10,*ph=20口
8.4.2 指针变量的引用 【例8-1】演示指针变量的引用 void swap1(int x , int y){int temp;temp = x;x = y;y = temp;} void swap2(int *x , int *y){int temp;temp = *x;*x = *y;*y = temp;} void swap3(int *x , int *y){int *temp;temp = x;x = y;y = temp;} void main() {int a,b; int *pa,*pb; pa=&a; pb=&b; a=10,b=20;swap1(a,b); printf("a=%d,b=%d,*pa=%d,*pb=%d\n",a,b,*pa,*pb); a=10,b=20;swap2(pa,pb); printf("a=%d,b=%d,*pa=%d,*pb=%d\n",a,b,*pa,*pb); a=10,b=20;swap3(pa,pb); printf("a=%d,b=%d,*pa=%d,*pb=%d\n",a,b,*pa,*pb); }
【例8-1】演示指针变量的引用swapl(intx,inty),主函数调用方式为o swapi(a,b);o值传递,a、b的值以及pa、pb指针变量都不受影响。swap2(int*x,int*y),主函数调用方式为:o swap2(pa,pb);形参是指针变量,实参也是指针变量。交换算法中采用指向运算符*O所以*x、*y和pa、pb是对应相同的数据a、b,最后函数实现了交换。swap3(int*x,int*y),主函数调用方式为:o swap3(pa,pb);形参是指针变量,实参也是指针变量。交换算法中临时指针变量虽然O把x、y交换,但pa、pb没有交换,所以对应的数据a、b也没有受到影响,交换是失败的
【例8-1】演示指针变量的引用 swap1(int x,int y),主函数调用方式为: swap1(a,b); 值传递,a、b的值以及pa、pb指针变量都不受影响。 swap2(int *x,int *y),主函数调用方式为: swap2(pa,pb); 形参是指针变量,实参也是指针变量。交换算法中采用指向运算符* , 所以*x、 *y和pa、pb是对应相同的数据a、b,最后函数实现了交换。 swap3(int *x,int *y),主函数调用方式为: swap3(pa,pb); 形参是指针变量,实参也是指针变量。交换算法中临时指针变量虽然 把x、y交换,但pa、pb没有交换,所以对应的数据a、b也没有受到影 响,交换是失败的
【例8-1】演示指针变量的引用swap3()分析图pax1011FF1010101IFF10temppbyb1011FF121011FF1220交换算法之前Xpa1011FF12101011FF10tempyApbb1011FF10201011FF101011FF12交换算法之后
【例8-1】演示指针变量的引用 swap3()分析图
8.4.3指针的算术运算和关系运算算术运算o指针变量的++和--运算。o指针加、减整数运算。o指向同一数组不同元素的指针相减运算0假定有:-char str[1oo]="Hello World";char *p=str,*q;WHno'-P
8.4.3 指针的算术运算和关系运算 算术运算 指针变量的++和-运算。 指针加、减整数运算。 指向同一数组不同元素的指针相减运算。 假定有: char str[100]= "Hello World"; char *p=str,*q;
8.4.3指针的算术运算和关系运算p++HWdnoe4pq=p+3;H-1Wdno'e0?←Pa字符W可以用str[6]表示,也可以用p[5]、q[2]表示
8.4.3 指针的算术运算和关系运算 p++ q=p+3; 字符W可以用str[6]表示,也可以用p[5]、q[2]表示