我怎么知道指针是否为数组? 示例:
int main()
{
int *a=new int [3] { 1,2,3 };
std::cout << *a;
}
我们有一个“ a”指针,如何检查其将自身保持为数组还是单个变量?
答案 0 :(得分:2)
我怎么知道指针是否是数组?
您不能仅根据指针值(也不是类型)来找到它。
您必须知道它是否存在。如果您不知道该怎么做,则必须查看指针的来源。
答案 1 :(得分:-3)
使用指针算法,您可以确定已初始化指针是指向数组还是指向单个变量,例如,对这样的代码进行编码将对您有所帮助,将其添加为“ 1”,您将指出编译器可以访问变量'a'的内存地址所在的下一个位置,如果它指向NULL,那么在'a'的相邻位置还没有分配内存,因此通常指向单个变量的指针。
int *a = new int [3] {1,2,3};
if (*(a+1)==NULL)
cout<<"single variable";
else
cout<<"array";