我正在学习引用和指针,本教程中的内容并没有为我编译(我正在使用GCC)。
好的,这是代码:
#include <iostream>
using namespace std;
int main()
{
int ted = 5;
int andy = 6;
ted = &andy;
cout << "ted: " << ted << endl;
cout << "andy: " << andy << endl;
}
编译器输出显示“错误:从'int *'到'int'的无效转换” 我也试了一个string = v; v =&amp; andy;但那也不起作用。
如何将内存地址分配给变量?
答案 0 :(得分:5)
指针保存内存地址。在这种情况下,您需要使用指向int的指针:int*
。
例如:
int* ptr_to_int;
ptr_to_int = &andy;
std::cout << ptr_to_int << "\n"; // Prints the address of 'andy'
std::cout << *ptr_to_int << "\n"; // Prints the value of 'andy'
答案 1 :(得分:0)
int
指针与int
的类型不同。没有一些讨厌的技巧,你不能指定整数指针。我会给你一些你可能想要做的例子。
指针示例:
#include <iostream>
using namespace std;
int main()
{
int ted = 5;
int andy = 6;
int * ptr = &andy;
cout << "ted: " << ted << endl;
cout << "andy: " << andy << endl;
cout << "ptr: " << *ptr << endl;
}
参考示例:
#include <iostream>
using namespace std;
int main()
{
int ted = 5;
int andy = 6;
int & ref = andy;
cout << "ted: " << ted << endl;
cout << "andy: " << andy << endl;
cout << "ref: " << ref << endl;
}