Re: [课业] 计算机概论

楼主: a828203 (催化剂)   2018-07-02 20:47:29
※ 引述《semmy214 (黄小六)》之铭言:
: https://imgur.com/a/2UjxBkw
: 106铁路员级 计盖
: 想问一下 swap 是变换变量值~
: 但指标值无法变换?
本题出 106年 铁路人员考试 员级考试 电子工程 计算机概要 第25题
void swap(int a,int b,int *c,int *d)
{
int temp=a; //temp=1
a=b; //a=2
b=temp; //b=1
//a和b都是传值呼叫,因此不会修改到main的i,j
temp=*c; //temp=3
*c=*d; //*c=4,因为是传址呼叫,所以 main 的 m=4
*d=temp; //*d=3,因为是传址呼叫,所以 main 的 n=3
}
int main()
{
int i=1,j=2,m=3,n=4;
swap(i,j,&m,&n);
//呼叫 swap 副程式 (并带入i,j,&m,&n,注意:i,j是传值呼叫,&m,&n是传址呼叫)
printf("%d %d %d %d",i,j,m,n);
//故印出 1 2 4 3
return 0;
}
以上提供参考,小弟才疏学浅,如有说明错误,还请各位先进前辈不吝指教,谢谢。
作者: sunnymiruko (sunnymiruko)   2018-07-02 22:04:00
推好心 QQ

Links booklink

Contact Us: admin [ a t ] ucptt.com