面试题答案
一键面试#include <iostream>
void modifyValue(int* ptr) {
if (ptr != nullptr) {
*ptr = 42;
}
}
int main() {
int num = 10;
std::cout << "Before modification, num = " << num << std::endl;
modifyValue(&num);
std::cout << "After modification, num = " << num << std::endl;
return 0;
}
- 为什么这样做能达到修改的效果:
- 在C++中,当我们将变量的地址(指针)作为参数传递给函数时,函数内部通过这个指针可以直接访问和修改该指针所指向的内存地址中的值。
- 在
main
函数中,定义了变量num
,然后将num
的地址&num
传递给modifyValue
函数。在modifyValue
函数中,ptr
指针指向了num
在内存中的位置。通过解引用ptr
(即*ptr
),我们可以直接修改num
的值,所以当main
函数再次输出num
时,其值已经被修改。