我在使用一个只接受数组的程序时遇到了问题。我有很多指向不同数组的指针,但是使用 *p似乎只给予了我数组的第一个元素。我想返回数组的所有元素。如果有帮助的话,我知道数组的长度。
#include <typeinfo>
#include <iostream>
int i[10];
int* k=i;
cout<<typeid(i).name()<<'\n';
cout<<typeid(*k).name()<<'\n';
结果分别为“int [10]”和“int”。我希望以某种方式将k返回为“int [10]”。
2条答案
按热度按时间kh212irz1#
你的
k
是一个指向int
的指针。它指向数组的第一个元素。如果你想要一个指向整个数组的指针,那么你需要这样声明它。输出:
然而,正如其他人所说,
std::array
在使用时不那么容易混淆,它可以做(几乎)任何c数组可以做的事情,而没有它的怪癖。当然,对于您的实际问题,有一种解决方案不需要从指向单个整数的指针获取数组。
cygmwpex2#
下面的示例向您展示了C++数组/向量比带指针的“C”样式数组要方便得多: