#include <iostream>
using namespace std;
void func (char *data)
{
data+=3;
cout << data << "\n"; //456789
}
int main() {
// your code goes here
char * str = "123456789";
char *data = str;
func(data);
cout << data << "\n"; // 123456789
return 0;
}
Run Code Online (Sandbox Code Playgroud)
为什么会这样?无法理解它是如何可能的.你能解释一下吗?
将变量传递给函数时,它们按值传递,这意味着变量的值被复制到参数变量.由于您只修改了函数中的副本,因此不会修改原始变量.
To pass the actual original value you need to pass it by reference. This is done by using the ampersand when declaring the argument:
void func (char *&data)
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
71 次 |
| 最近记录: |