我在互联网上看到,指向数组的指针和指向数组的第一个元素的指针是相同的。但是在CooCox中,下一次调用一个错误:
//Get Arr
uint8_t TestDataArr[10];
//Func get pointer to arr
void InitData (TestPacks *Data)
{
//Some code
}
//This call error
InitData(&TestDataArr)
//But this is norm
InitData(&TestDataArr[0])为什么会发生这种事?
发布于 2017-02-27 10:58:49
InitData(&TestDataArr)不等于
InitData(&TestDataArr[0])因为TestDataArr[0]等于*TestDataArr,然后InitData(&TestDataArr[0])等于InitData(&*TestDataArr)或InitData(TestDataArr)。你可以看到,那个
InitData(&TestDataArr)是TestDataArr的地址和
InitData(TestDataArr)只是数组而已。那也是不同的类型!
https://stackoverflow.com/questions/42483830
复制相似问题