C指向数组作为func的参数

时间:2017-02-27 10:50:08

标签: c

我在互联网上看到,指向数组的指针和指向数组第一个元素的指针是相同的。但是在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])

为什么会这样?

1 个答案:

答案 0 :(得分:0)

InitData(&TestDataArr)

不等于

InitData(&TestDataArr[0])

因为TestDataArr[0]等于*TestDataArr,然后InitData(&TestDataArr[0])等于InitData(&*TestDataArr)InitData(TestDataArr)。 你可以看到,

InitData(&TestDataArr)

TestDataArr

的地址
InitData(TestDataArr)

只是数组。 那也是不同的类型!