【发布时间】:2021-01-02 10:58:45
【问题描述】:
我编写了一个简单的 C++ 代码,并且运行良好。但我不知道它是如何工作的。我只是使用myfun() 将"l" 替换为"r"。
myfun() 的返回类型是 char*。如果我返回&(str[0]),即仅返回数组第一个元素的地址,那为什么要打印完整的字符串"herloworld"?请解释一下return &(str[0]); 在做什么。
#include <iostream>
using namespace std;
char* myfun(char str[])
{
str[2] = 'r';
return &(str[0]);
}
int main()
{
char str[] = "helloworld";
char* word;
word = myfun(str);
cout << word;
}
【问题讨论】:
-
请注意,
return &(str[0]);完全等于return &(*str);,这与return str;相同。
标签: c++ function pointers operator-overloading c-strings