也只有当指针数组中每个元素的类型都是char *时,才能像上面那样给指针数组赋值,其他类型不行。
为了便于理解,可以将上面的字符串数组改成下面的形式,它们都是等价的。...首先引入二维数组的定义:二维数组在概念上是二维的,有行有列,但在内存中所有的元素都是连续排列的,以下面的二维数组为例:
int a[3][4]={{1,2,3,4},{5,6,7,8},{9,10,11,12...也就是说,p+1会使得指针指向二维数组的下一行,p-1会使得指针指向数组的上一行。数组名 a 在表达式中也会被转换为和 p 等价的指针!...0 个元素的指针;就像一维数组的名字,在定义时或者和 sizeof、& 一起使用时才表示整个数组,出现在表达式中就会被转换为指向数组第 0 个元素的指针
4) *(*(p+1)+1)表示第 1 行第 1...:
0 1 2 3
4 5 6 7
8 9 10 11
----
指针数组和二维数组指针的区别
指针数组和二维数组指针在定义时非常相似,只是括号的位置不同: