我是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;
}
答案 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 ++中,字符也用勾号而不是引号分隔