首页 > 试题广场 >

程序段的执行结果是: #include ...

[单选题]
下面程序的执行结果是()
#include <iostream>
using namespace std;

void fun1(int& x) {
    x++;
}

void fun2(int x) {
    x++;
}

int main() {
    int abc = 13;
    fun1(abc);
    printf("%d\n", abc);
    fun2(abc);
    printf("%d\n", abc);
}
  • 13,13
  • 14,14
  • 13,14
  • 14,15
fun1传入的是X的地址,进行++操作会直接改变x的值,进行fun1操作后x变为14,fun2中的x是形参,不会改变实参x的值,因此输出14,14
发表于 2019-07-18 13:22:18 回复(0)
fun1传入的是X的地址,进行++操作会直接改变x的值,进行fun1操作后x变为14,fun2中的x是形参,不会改变实参x的值,因此输出14,14
发表于 2019-07-09 08:57:43 回复(1)
fun1引用传递,fun2值传递
发表于 2019-07-10 21:26:31 回复(0)
看错了呜呜 func1传递的形参是引用,func2是临时变量。 引用指向X的地址,在函数内做的更改对main方法中的X有实际影响,临时变量是独立于X的变量,只在函数被调用时生成,在函数结束时被销毁。 所以func1会对X有实质的改变,func2不会
编辑于 2024-03-16 16:28:52 回复(0)
fun1传入的是X的地址,进行++操作会直接改变x的值,进行fun1操作后x变为14,fun2中的x是形参,不会改变实参x的值,因此输出14,14
发表于 2022-05-06 18:18:43 回复(0)