类似跨越一个维度的指针指向
来源:7-8 函数指针与typedef

学以致用over
2022-03-20
老师,您好,关于7-8函数指针视频中,使用
void (*fuc)(int ***ptr, int row, int col) = &InitPointer;
这句代码不太懂,如果函数 InitPointer() 相当于数组,那定义
void (*fuc)(int ***ptr, int row, int col) = InitPointer;
应该就可以了吧,应该不需要再取地址了吧?我试了试在数组中定义
int arr[5] = {1, 2, 3, 4, 5};
int *p = &arr;
编译器提示应该用**p接收arr的地址,使用内存视图查看地址也发现这种定义情况下*p指的是另一个空间,**p才指向arr[0]地址空间,但是奇怪的是p[0]居然是被允许的,而且p[0]恰好等于1,请问老师这种类似跨越一个维度指针指向是什么一种情况?
写回答
1回答
-
函数名和数组名取地址得到的就是函数和数组的地址,实际上函数名和数组名本身也是个地址,因此取不取地址在这里实际上是一样的。
012022-03-21
相似问题