int a,b; void fun() { a=200; b=300; cout<<"a"<<a<<endl; cout<<"b"<<b<<endl; } int main() { int a=5,b=7; fun(); cout<<"main中"<<endl; cout<<"a"<<a<<endl; cout<<"b"<<b<<endl; return 0; }
时间: 2023-08-20 21:10:33 浏览: 37
这段代码的输出结果为:
```
a200
b300
main中
a5
b7
```
在 `fun()` 函数中,`a` 和 `b` 被赋值为 200 和 300,然后输出。在 `main()` 函数中,又定义了 `a` 和 `b`,但这两个变量与 `fun()` 中的 `a` 和 `b` 是不同的。所以在输出 `main()` 中的 `a` 和 `b` 时,分别输出了它们自己的值,即 5 和 7。
相关问题
void fun(int *a, int *b) { int c = 0; c = *a; *a = *b; *b = c; } int main() { int a = 1; int b = 2; cout << a << "," << b << endl; fun(&a, &b);//a,b交换 cout << a << "," << b << endl; system("pause"); return 0;输出的是什么
这段代码会输出:
```
1,2
2,1
```
首先,在 `main` 函数中定义了两个整型变量 `a` 和 `b` 并分别赋值为 1 和 2。
然后,调用了函数 `fun`,将 `a` 和 `b` 的地址作为参数传递给函数。
在函数 `fun` 中,定义了一个整型变量 `c` 并将其初始化为 0。接着,将 `a` 指向的值赋给了 `c`,将 `b` 指向的值赋给了 `a`,最后将 `c` 的值赋给了 `b`,从而实现了交换 `a` 和 `b` 的值。
回到 `main` 函数,输出了交换后的 `a` 和 `b` 的值,即 2 和 1。
B a; typedef void(*Fun)(void); Fun pFun = nullptr; cout << "虚函数表地址:" << (int*)(&a) <<endl;代码的作用
&b) << endl; cout << "虚函数表 — 第一个函数地址:" << (int*)*(int*)(&b) << endl; // 获取第一个函数地址 pFun = (Fun)*((int*)*(int*)(&b)); // 调用第一个函数 pFun(); return 0; }
输出结果如下:
虚函数表地址:0x61fef0
虚函数表 — 第一个函数地址:0x4016d0
Base::fun()
可以看到,我们成功地获取了虚函数表的地址,并通过指针调用了虚函数。
需要注意的是,虚函数表的实现方式是由编译器决定的,不同编译器可能有不同的实现方式。因此,上述代码只是一种可能的实现方式,实际情况可能会有所不同。