总结作业二:
void swap(int *p,int *q){int *m;*m=*p;*p=*q;*q=*m;}为何无法实现交换?
编译错误,涉及到指针如何赋初值:指针初始化时,“=”的右操作数必须为内存中数据的地址,不可以是变量,也不可以直接用整型地址值(但是int*p=0;除外,该语句表示指针为空)。那么可将该代码修改如下,消除了error,但是结果是否正确?
1 #include <stdio.h> 2 void swap(int *pi,int *pj); 3 4 int main(void) { 5 int a=5; 6 int b=8; 7 swap(&a,&b); 8 printf("a=%d,b=%d\n",a,b); 9 return 0; 10 } 11 12 void swap(int* i,int* j){ 13 int *t=i; 14 *i=*j; 15 *j=*t; 16 }