我在互联网上看到,指向数组的指针和指向数组第一个元素的指针是相同的。但是在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])
为什么会这样?
答案 0 :(得分:0)
InitData(&TestDataArr)
不等于
InitData(&TestDataArr[0])
因为TestDataArr[0]
等于*TestDataArr
,然后InitData(&TestDataArr[0])
等于InitData(&*TestDataArr)
或InitData(TestDataArr)
。
你可以看到,
InitData(&TestDataArr)
是TestDataArr
和
InitData(TestDataArr)
只是数组。 那也是不同的类型!