学习C语言遇到不理解的地方了,希望大侠们能帮忙解决,不胜感激,代码如下。

#include <stdio.h>
#include <conio.h>
void swap(int *a,int *b)
{
printf("a is %d,b is %d\n",*a,*b);
int temp;
temp=*a;
*a=*b;
*b=temp;
printf("a is %d,b is %d\n",*a,*b);
}
void main(void)
{
int num1=3,num2=5;
printf("num1 is %d,num2 is %d\n",num1,num2);
swap(&num1,&num2);
printf("num1 is %d,num2 is %d\n",num1,num2);
getchar();
}

结果是
num1 is 3, num2 is 5
a is 3,b is 5
a is 5,b is 3
numi is 5, num2 is 3
最后的一个结果(numi is 5, num2 is 3)我没有搞懂,希望懂得人能多多解释,先谢谢啦

这个其实你就是要懂指针的含义了(http://blog.csdn.net/ad_ad_ad/article/details/1522145可以百度一下,然后学习 )
这一题调用参数前面用的是&表示传入地址,所以swap里面的a和b指向的其实就是num1和num2,所以对*a和*b的改变就是对num1和num2的改变,这个你可以在学习完指针后多测试
温馨提示:内容为网友见解,仅供参考
无其他回答
相似回答
大家正在搜