ref和out参数传递方法相同,都是把实参的内存地址传递给形参,实参与形参指向同一个内存存储区域,但ref要求实参必须在调用之前明确赋过值
ref是将实参传入形参,out只能用于从方法中传出值,而不能从方法调用处接受实参数据。
ref和out参数因为传递的是实参的地址,所以要求实参和形参的数据类型必须一致
ref和out参数要求实参和形参的数据类型或者一致,或者实参能被隐式地转化为形参的类型
第1题:
下面程序的运行结果是
#include<iostream.h>
Void main( )
{
int num=1;
int &ref=num;
ref=ref+2;
cout < < num;
num=num+3;
cout < < ref < <endl;
}
A.13
B.16
C.36
D.33
第2题:
A.#NULL
B.#NAME
C.#VALUE!
D.#REF!
第3题:
下面程序的运行结果是( )。
include<iostream.h> void main
{
int num=1:
int&ref=num; ref=ref+2:
cout<<num: num=num+3: cout<<ref<<endl:
}
A.13
B.16
C.36
D.33
本题考查的是考生对引用的掌握,ref实际上就是变量num的别名,所以ref=ref+2时,num已经变成了3。
第4题:
在Spring中,下面的代码定义了一个前置通知类,则下列选项中,说法错误的是( )。public class LogAdvice implements MethodBeforeAdvice{
public void before(Method m,Object[]arges,Object target) throws Throwable{
System.out.println(m.getName()+"(" + Arrays.toString(args) +")";
});()
A. 方法before是MethodBeforeAdvice接口中定义的方法
B. 参数m是被通知的目标方法
C. 参数args是调用方法的参数
D. 参数target是代理类
第5题:
说出下面几个函数的区别:
private void test(string str){…}
private void test(ref string str){…}
private void test(out string str){…}
如果一个页面与数据
第6题:
下面程序的运行结果是
#include
void main()
{
int num=1;
int &ref=num:
ref=ref+2;
cout<(num;
num=num+3;
cout<<
}
A.13
B.16
C.36
D.33
第7题:
有如下类定义: classSample{ public: Sample(intx):ref(x){}//① private: Sample():ref(0){}//② staticintva1=5;//③ constintref;//④ }; 上述程序段中,错误的语句是( )。
A.①
B.②
C.③
D.④
第8题:
下面程序的运行结果是 #include<iostream.h> void main( 0 { int num =1; int &ref = num; ref=ref+2; cout << num; num = num+3; cout < < ref < < end1; }
A.13
B.16
C.36
D.33
第9题:
在有参数函数设计时,要想实现某个参数的“双向”传递,就应该说明该形参“传址”调用形式。其设置选项是( )。
A.By Val
B.By Ref
第10题:
下面程序的运行结果是 #include<iostream.h> void main() { int num=1; int &ref=num; ref=ref+2; cout<<num; num=num+3; cout<<ref<<end1; }
A.13
B.16
C.36
D.33