void swap(int *a,int *b) //定义函数 { int t; //输入一个整型t t=*a; *a=*b; *b=t; //交换 *a,*b } int main() //主函数 { int m,n; //输入整型 m n int *p1,*p2;// 输入两个指针变量 scanf("%d %d",&m,&n); //输入两个值 p1=&m; //把m的地址给p1 p2=&n; //把n的地址给p2 swap(p1,p2);//调用函数 printf("m=%d n=%d",m,n);//输出 return 0;//返回值0 } 10 20
m=20 n=10
--------------------------------
Process exited after 5.124 seconds with return value 0
请按任意键继续. . .
总结: 每次写程序时都没有清晰的思路,只有慢慢写草稿,一次次的编译,有时候写到最后编译成功,不知道代码的意思。对指针还不熟悉。
二:*m是指针变量,m无确定的值,不可见,会破环正常工作。
三:实参和形参都是单向值传递的,用指针可以得到多个变化值。
int max(int *a,int *b)//定义max函数 { if(*a>*b) //比较大小 return(*a); //返回较大值 else return(*b); } int main() { int m,n,t; int *p1,*p2; scanf("%d %d",&m,&n); p1=&m; p2=&n; t=max(p1,p2); //调用函数,把最大值赋值给t printf("%d\n",t);//输出t } 100 200 200 -------------------------------- Process exited after 7.521 seconds with return value 4 请按任意键继续. . . 总结:写此程序时在scanf后面忘写了&,说明程序是敲出来的。