第二次作业
#include<stdio.h> #include<stdlib.h> int main() { int swap(int *m1,int *m2); int a,b; int *pointer_1,*pointer_2; scanf("%d,%d",&a,&b); pointer_1=&a;pointer_2=&b; if(a<b) swap(pointer_1,pointer_2); printf("\n%d,%d\n",*pointer_1,*pointer_2); system("pause"); } int swap(int *m1,int *m2) { int temp; temp=*m1; *m1=*m2; *m2=temp; }
2. void swap(int *p,int *q)
{int *t;
*t=*p;
*p=*q;
*q=*t;
}原因:*p就是整型变量,而*t是指针变量temp所指向的变量,但t无确定值,因此t所指向的单室是不可预见的。所以对*t赋值有可能给一个存储这重要数据的存储单元赋值,这样就会破坏系统的正常工作。
3. void swap(int *p,int *q)
{int *t;
t=p;
p=q;
q=t;
}原因:C语言中实参变量和实参变量之间的数据传递是单向的“值传递”方式。
4.
#include<stdio.h> int main() { int comp(int a,int b); int p,q,c; scanf("%d,%d",&p,&q); c=comp(p,q); printf("max=%d\n",c); } int comp(int a,int b) { int z; if(a<b) z=a; else z=b; return(z); } 12,38 max=38 -------------------------------- Process exited after 4.646 seconds with return value 0 请按任意键继续. . .