c/c++笔记--指向数组的指针与二维数组
指向数组的指针与二维数组
定义一个二维数组很简单,如int matrix[3][10]。如果我们想在函数中对这个二维数组进行修改那么该如何传递参数呢?
有两种方式:void func(int (*mat)[10]) 或 void func(int mat[][10])
(*mat)[10],mat就是一个指向数组的指针。
同时(*mat)[10]和mat[][10]虽然在函数参数中是等价的,它们实际是不同的,第一个是一个变量,而第二个则是一个常量。
只要有可能,函数的指针形参都应该声明为const
指针数组和字符串数组
指针数组的定义int *api[10];和指向数组的指针相比只少了括号,但是前者是一个数组,里面的元素都是指针
我们有两种方法来存储多个字符串,一是通过指针数组
char const *keyword[]={"do","for"};
另一种方法是使用二维数组 char const keyword[][9]={"do","for"};
第一种相较第二种要省一定空间,但是要使用指针