说我有一个指针向量,但是我想打印出第一个指针指向的值。我将使用什么语法?我正在学习使用指针,但我自己在Google的任何地方都找不到这种情况。
例如:
vector<int*> vec;
//fill the vector however it needs to be
cout << vec[0];
//This prints an address but I want the value that address points to
答案 0 :(得分:1)
您可以通过用*
解引用指针来获取指针所指向的值,因此您将得到*(vec[0])
,这将要求向量中至少包含一个元素。首先要指出的是当然有效的东西。
话虽如此,请重新考虑您是否真的需要使用指针,很多时候我发现没有充分理由使用指针。如果您没有充分的理由证明使用指针是合理的,请使用普通的int
。
答案 1 :(得分:0)
您只需取消引用通过vec[0]
获得的指针,即您必须编写
cout << *(vec[0]) << endl;
但是,请注意,您没有为指针保留内存。也许您甚至想要管理整数的简单数组。 一个可行的示例(即使仍然可以讨论使用保持指向整数的指针的向量有多有意义)的示例如下:
int main() {
int a[] = { 1,2,3 };
std::vector<int*> vec;
vec.push_back(a);
cout << *(vec[0]) << endl;
cout << vec[0][1] << endl;
}
输出:
1
2