整数数组与c ++中指向整数的指针

S I*_*S I 2 c++ arrays pointers

如果我有int x[10]int *y,我怎么能分辨出两者之间的区别?

我有两个想法:

  1. sizeof()是不同的.

  2. &x有不同的类型--- int (*p)[10] = &x工作但不是int **q = &x.

还有其他人?

在一些模板库代码中,我需要确定指针是"真实"指针还是从数组中退化.我不能查看源代码,因为在我编写库之前库用户不存在....我可以通过重写代码解决这个问题,所以现在这只是一个理论练习.

小智 5

没有通用方法 - 您已经知道了类型,因为您刚刚声明了对象,或者类型已经衰减到指针并且已经丢失.请通过区分它们来解释您尝试解决的问题.

  • 我怀疑他要么编写一些区分数组或指针的模板代码,要么尝试编写一个指针失败的数组计数函数/宏. (3认同)