这是个递归函数。n=5时返回值为8
答案选C
//n的变化//第一次
return foo(4)+foo(3);
//第二次
return foo(3)+foo(2);
//因为foo(3)大于2所以还要调用,但后面那个就foo(2)直接返回2,知道foo(2)就返回2
//所以结果=2+2+2+2=8
1/程序:
public class TwoDimArray2 {public static void main(String[] args){
int [][] arr = {{1,2,3},{4,5,6}};
int [] foo = arr[0];
Systemoutprintln("1 ");
for(int i=0 ;i<foolength;i++){
Systemoutprint(foo[i]+" ");
}
Systemoutprintln();
foo=arr[1];
Systemoutprintln("2 ");
for(int i=0;i<foolength;i++){
Systemoutprint(foo[i]+" ");
}
Systemoutprintln();
}
}
2/运行结果:
11 2 3
2
4 5 6
3/问题:不理解int[] foo = arr[0] 和 foo = arr[1]为什么指向不同
int[] foo = arr[0] :实际是初始化foo数组,并给foo数组分配了内存空间,然后赋初值arr0;
foo = arr[1]:实际是因为已经开辟了foo的内存空间,并且初始化为数组类型格式,那么foo作为数组名就代表了这一片内存空间的地址,即将arr二维数组的第二个元素赋值给foo代表的那一块数组内存空间。
宏的替换是原样照搬, 它不会把参数运算后再替换,跟函数的参数不一样
Foo(b+2) 相当于 ( b+2 b+2 )
a=(b+2b+2);
a=3+6+2=11;
以上就是关于程序设计if回答~全部的内容,包括:程序设计if回答~、帮我看一下这个Java数组程序,我不理解int[] foo = arr[0] 和 foo = arr[1]为什么指向不同、这个程序是怎么执行的#define Foo(x) (x * x) 说出结果和原因等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)