C语言指针问题

C语言指针问题求详解
2024-11-28 16:26:25
推荐回答(1个)
回答(1):

正如楼下所言 int **p ,定义的p是一个指向int*型的指针int (*p)[10]是一个指向数组的指针 数组长度为10假如定义成 deal(int **p),传参数时要加强制类型转换: deal((int**)a);并且使用p时不能用下标,p[2][3]是错误的,因为不知道p指向的int*型的长度,无法编译成*(p+2*10+3)必须自己写成*(p+2*10+3)来调用假如定义成 deal(int (*p)[10])就不一样了,编译器就能知道p是一个指向长度为10的数组的指针那么p[2][3]就能编译成*(p+2*10+3)了总之,C语言是很灵活的,不同的定义方式配上不同的用法,都是能得到正确的结果的不知道这么说楼主明白了没?同样的还有多维数组对多维指针的问题,楼主可以自己类推一下