最近看到数组指针和指针数组那一块有点头疼,感觉明明都差不多的为什么一个叫数组指针,一个叫指针数组呢?
首先先理解什么叫数组指针,什么叫指针数组,既然名字不同,那么肯定意义也是不一样的咯~
数组指针:
顾名思义,就是指向数组的指针
举个例子:(*ptr)[3],这就是一个数组指针,ptr是指向一个有3个元素的数组的指针
指针数组:
数组元素全为指针的数组就是指针数组
同样举个例子:*ptr[3],这就是一个指针数组,意思是一个数组有3个元素,每一个元素都是指针变量
好啦,到这里大致的概念应该已经有了,前面说的是一维数组比较好理解,那么二维数组呢?比如这个:
int (*q)[3] = new int [2][3]
这是一个数组指针(简单点的记忆就是看它有没有“()”,如果有那么就是数组指针,反之就是指针数组啦)
具体的意思指针q指向一个包含2个含有3个元素的一维数组的二维数组。
三维数组....
四维数组....
以此类推。。。
可以参考资料:
感谢阅读,希望可以帮助到你~~