2、下面代码的描述中,正确的是( )。
答案:B
解析:这道题目是关于C++函数参数的传递方式。在C++中,函数参数可以是按值传递(pass by value)或者按引用传递(pass by reference)。让我们逐一分析每个选项:
A.这个选项是错误的。在C++中,当一个整数变量作为实参传递给函数时,它是按值传递的,这意味着函数内部对参数的修改不会影响到原始变量。在这个例子中,times作为实参传递给n_chars函数,函数内部的n--操作不会影响到times的值。因此,代码执行结束后,times的值仍然是5。
B.这个选项是正确的。在函数定义中,n是形式参数(形参),而times是在函数调用时传递的实际参数(实参)。
C.这个选项是错误的。n在函数定义中是形式参数,而times在函数调用中是实际传递的参数。
D.这个选项是错误的。如果将代码最后一行改为n_chars(times, my_char);,那么times将被传递为char类型的参数,而不是int类型,这将导致编译错误,因为times是int类型,而my_char是char类型。
因此,正确答案是B。