问题描述
- 3个数从大到小排序用地址传递和值传递
-
3个数从大到小排序用地址传递和值传递(指针)
三个数从大到小分别用地址传递和值传递(指针)
解决方案
形参与实参,使用形参就是值传递方式,而实参则是地址传递。
解决方案二:
值传递排序后,他们的值不会改变
解决方案三:
说白了 就是 地址传递来排序就是 内存空间里 定义的这三个数它们不发生变化,用指针就相当于给它们贴标签,谁是第一谁是第二,指针按排序顺序逐个贴上标签。而值传递是,刚开始是乱序的,这三个数字的在内存里面的值要变化,是直接的比较。指针相当于间接比较,变的是对应的指针变量。综合来说,两个的区别是地址传递变的是三个指针变量储存的地址,值传递变的是内存空间三个数字变量的内容
解决方案四:
一个是
sort(int * a, int * b, int * c)
一个是
sort(int& a, int& b, int& c)
再定义一个临时变量t,排序代码如下
if(a<b)
{
t=a;
a=b;
b=t;
}
if(a<c)
{
t=a;
a=c;
c=t;
}
if(b<c)
{
t=b;
b=c;
c=t;
}
时间: 2024-11-05 13:01:00