总结作业二:

      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 }
View Code

相关文章: