所以我把这个数组放在头文件中,如下所示:
// header.h
static const unsigned int array1[]={0x00,0x01,0x02,0x03};
以及:
// file.c
main()
{
unsigned int *ptrToArray;
ptrArray = &array1[0];
}
如果我错了就纠正我。我假设:要找到数组元素的字节数,而不是
sizeof(array1)
等价的字节数是sizeof(*ptrArray)
,对吧?要访问数组的元素,而不是
array[i]
,现在将是:*(ptrArray)
对于第一个元素,*(ptrArray+1)
对于第二个元素,是吗? 最佳答案
*ptrToArray
的类型是int
,因此sizeof(*ptrToArray)
与sizeof(int)
相同。所以它不会告诉你array1
中元素的数量。
当你可以写*(ptrArray+1)
等的时候,你应该只写ptrToArray[1]
!