Is this a pointer to a pointer of the start of an array?

322 views Asked by At

I've just been helping someone out with some code. He had this:

char dataArray[10];

Then wanted to get a pointer to the start of the array. Rather than use:

&dataArray[0]

or just

dataArray

He used

&dataArray

Did he end up with a pointer to a pointer there? I'm not sure what &dataArray would give him.

2

There are 2 answers

9
Sourav Ghosh On
  • &dataArray[0] is of type char *. That is a pointer to char.
  • dataArray is of type char[10]
  • &dataArray will be of type char (*)[10]. That is a pointer-to-array.

Apart from that, the value will be same, i.e., they point to the same address but their types need not be compatible.

None of them is a pointer-to-pointer here. They are just pointer with different types.

Note: Because the array decaying property, char [100] will decay to a char *, for example, when passed as an agument of a function.

0
Kunal Saini On

dataArray and &dataArray[0] points to the address of the first index of the array so they are the same thing but &dataArray will point to the address of the whole array or we can say it will give the address where the whole 10 index array is located(as a whole)