一个程序员的诞生!
下面的第一个程序是正确的做法
第二个是错误的做法
#define _CRT_SECURE_NO_WARNINGS 1
#include <stdio.h>
void swap(int *p1, int *p2);
int main()
{
int a = 0;
int b = 0;
int c = 0;
scanf("%d%d%d",&a,&b,&c);
printf("a=%d b=%d c=%d\n",a,b,c);
if(a<b)
swap(&a,&b);
if(a<c)
swap(&a,&c);
if(b<c)
swap(&b,&c);
printf("a=%d b=%d c=%d\n",a,b,c);
return 0;
}
void swap(int *p1, int *p2)
{
int temp;
temp = *p1;
*p1 = *p2;
*p2 = temp;
}
//程序没有交换a,b的值,只是把实
//参a,b的值赋给了形参p1,p2。
//swap函数只是交换了形参p1,p2的值,
//但是形参p1,p2的值并不能返回给实参
//实参a,b和形参p1,p2都有单独的地址。
//#include <stdio.h>
//void swap(int p1, int p2);
//
//int main()
//{
// int a = 0;
// int b = 0;
// int c = 0;
// scanf("%d%d%d",&a,&b,&c);
// printf("a=%d b=%d c=%d\n",a,b,c);
// if(a<b)
// swap(a,b);
// if(a<c)
// a,b
// swap(a,c);
// if(b<c)
// swap(b,c);
// printf("a=%d b=%d c=%d\n",a,b,c);
// return 0;
//}
//void swap(int p1, int p2)
//{
// int temp;
// temp = p1;
// p1 = p2;
// p2 = temp;
//}
图片中详细的说明了各个变量值的变换情况和地址值
在图中调试的过程中,F10进行调试,F11进入子函数调试,F7进入子函数,Alt+F5为推出调试,点击菜单栏里的调试\窗口\监视,将各个变量,地址进行监视。