很简单的问题但是我不会
int f(int i){ return ++i; }int g(int &i){ return ++i; }
int main(){
int a(0),b(0);//这边是什么意思。然后整个程序帮我解析一下,谢谢。
a+=f(g(a));
b+=f(f(b));
cout<<a<<"\t"<<b;
return 0;
} int a(0),b(0); // 这里是C++用法,含义是用括号内的数据初始化变量 - 等同于int a = 0;
a+=f(g(a));
// 从内往外解析:先调用g(a),然后调用f(x) - <x = g(a)> 然后结果就容易了a += (之前的结果)。
// 如上例中
// a = 0
// g(a) 之后,a = 1,函数返回1
// f(g(a))之后,a不变,函数返回2
// a += f(g(a)) 之后,a += 2 -> a = 3 这不是C语言咯?看不太懂,围观 n0noper 发表于 2016-5-8 13:25
那f(x)和g(x)有什么区别吗? 留恋流年 发表于 2016-5-8 14:05
这不是C语言咯?看不太懂,围观
c++。C语言的延伸。 n0noper 发表于 2016-5-8 13:25
我懂了,这个跟冒泡法的swap的原理是一样的。要swap两个数的地址才有用。谢谢大神。 我叫淳子 发表于 2016-5-9 20:21
那f(x)和g(x)有什么区别吗?
g(int &x)
x就是引用,可以修改x的值。
f(int x)
只是简单的值传递,x修改没屌用。。
比如:x = 2;
f(x) -> x还是2
g(x)-> x就是3了···
页:
[1]