这两个指针声明之间是否存在任何差异,将std :: vector传递给具有我不理解的特殊签名的函数?
<button onclick="getRandomInt(-5,5)">Try it</button>
<p id="demo"></p>
<script>
function getRandomInt(min, max) {
document.getElementById("demo").innerHTML = Math.floor(Math.random() * (max - min + 1)) + min;
}
</script>
p_VecA和p_VecB之间有什么区别?
你能解释一下功能签名吗?我不明白最后一部分。
答案 0 :(得分:3)
double * p_VecA[1];
创建一个包含1个指针元素的数组,指向double
(在本例中为double
中的第一个theVectorA
)。因此p_VecA
是指向双精度的指针数组,在此上下文中,如果使用不带索引的名称,它会衰减到指向其第一个元素的指针(将其视为double**
)和p_VecA[0]
属于double*
类型(如p_VecB
是)。
double * p_VecB
创建指向double
的指针(在这种情况下,double
中的第一个theVectorB
)。
也许这可以帮助您理解libraryFunction()
的签名:
What is the difference between const int*, const int * const, and int const *?
像杰克写道:arrayOfChannels
是一个指向双重
答案 1 :(得分:1)
p_vecA是一个大小为1的指针数组
double * p_VecA[1];
p_VecB是指针
double * p_VecB = theVectorB.data();
可以写成
double * p_VecB;
p_VecB = theVectorB.data();