1.数组指针(这玩意儿多用,多用就熟练了)
在一维数组中很少运用,常见于二维及以上数组
如:
二维数组传参时通过数组指针传参
int* p =arr和int (*p)[] = &arr是不同的,&arr指的是整个数组
二维数组的数组名表示第一行的地址(不同于第一行的首元素的地址,二者在内容上没有区别,但是在权限、步长上有很大区别)。
用指针接收时,二维数组要用数组指针来接收(便于指针运算时换行操作),一维数组则用普通指针接收即可
[]有解引用的意思
当数组指针指向二维数组中时,这个用法很常见,有些书上面称这种指针为行指针,顾名思义就是操纵一行的指针
int (*)[5]这是一种类型,可以是单个变量,也可以是数组(就像int a;与 int a[])
2.数组传参
函数指针
1.写法:
int add(int x,int y)
int (*p)(int,int) = &add或者add
&函数名和函数名都表示函数的地址,所以,p和add等价