谁能帮我调试一下吗?

时间:2018-07-02 18:23:40

标签: c++

我是c ++的新手,正尝试制作一个简单的程序来返回char地址,这是代码

#include <iostream>
using namespace std;

char returnaddress(char* x){
char *t = &x;
return *t;
}
int main()
{
  char y = "a";
  returnaddress(&y);
  return 0;
}

2 个答案:

答案 0 :(得分:2)

无需创建函数来返回变量的地址。该功能已在语言中提供。

int main()
{
  char y = 'a'; // single quotes for single characters.
  char * pointer_to_y = &y; // This replaces your function.
  std::cout << "Address is: " << static_cast<void *>(pointer_to_y) << "\n";
  return EXIT_SUCCESS;
}

需要static_cast来强制输出地址,而不是调用重载来打印C样式字符串。

答案 1 :(得分:0)

您的字符地址为&y。无需使用错误的功能。函数中&x的类型为char**,因此代码无法编译。在C ++中,字符也用勾号而不是引号分隔