早教吧作业答案频道 -->其他-->
用指针指向两个变量,通过指针运算选出值小的那个数./*例81*//*用指针指向两个变量,通过指针运算选出值小的那个数*/#include1行main()2行{3行inta,b,min,*pa,*pb,*pmin;4行pa=&a;5行pb=&b;6行pmin=&min;7行sca
题目详情
用指针指向两个变量,通过指针运算选出值小的那个数.
/*例8_1*/
/*用指针指向两个变量,通过指针运算选出值小的那个数*/
#include 1行
main()2行
{3行
int a,b,min,*pa,*pb,*pmin;4行
pa=&a;5行
pb=&b;6行
pmin=&min;7行
scanf("%d%d",pa,pb); //指针pa指向变量a的地址,指针pb指向变最b的地址8行
printf("a=%d,b=%d\n",a,b);9行
*pmin=*pa; //*pa为pa指向的变量a的值10行
if(*pa>*pb)11行
*pmin=*pb;12行
printf("最小的数为:%d\n",min);13行
}
我的问题是:8行把数据给了指针变量pa,pb,9行却输出了我们什么数据也没给的a,b,我们输入的数字是a,b的地址,并给了pa,pb,9行中的a,b是没有内容的啊,10行又怎么会有a 被pa指针变量指向的内容的赋予*pmin(也就是min)呢?
/*例8_1*/
/*用指针指向两个变量,通过指针运算选出值小的那个数*/
#include 1行
main()2行
{3行
int a,b,min,*pa,*pb,*pmin;4行
pa=&a;5行
pb=&b;6行
pmin=&min;7行
scanf("%d%d",pa,pb); //指针pa指向变量a的地址,指针pb指向变最b的地址8行
printf("a=%d,b=%d\n",a,b);9行
*pmin=*pa; //*pa为pa指向的变量a的值10行
if(*pa>*pb)11行
*pmin=*pb;12行
printf("最小的数为:%d\n",min);13行
}
我的问题是:8行把数据给了指针变量pa,pb,9行却输出了我们什么数据也没给的a,b,我们输入的数字是a,b的地址,并给了pa,pb,9行中的a,b是没有内容的啊,10行又怎么会有a 被pa指针变量指向的内容的赋予*pmin(也就是min)呢?
▼优质解答
答案和解析
pa=&a;//这里是使指针pa指向变量a,也就是说pa的值是a的地址
pb=&b;//指针pb指向变量b
pmin=&min;//指针pmin指向变量min
scanf("%d%d",pa,pb); //指针pa指向变量a,指针pb指向变最b,所以这里其实也就是在给a和b赋值.
同理下面就能输出a和b的值了.
*pmin=*pa //因为pmin指向min,pa指向a,所以*pmin=min,*pa=a.这里也就相当于min=a.
以下的各个表达式你可以类推.
记住这里的指针是指向变量而不是指向变量的地址.
pb=&b;//指针pb指向变量b
pmin=&min;//指针pmin指向变量min
scanf("%d%d",pa,pb); //指针pa指向变量a,指针pb指向变最b,所以这里其实也就是在给a和b赋值.
同理下面就能输出a和b的值了.
*pmin=*pa //因为pmin指向min,pa指向a,所以*pmin=min,*pa=a.这里也就相当于min=a.
以下的各个表达式你可以类推.
记住这里的指针是指向变量而不是指向变量的地址.
看了用指针指向两个变量,通过指针运...的网友还看了以下: