c语言二维数组和指针数组
时间: 2023-07-20 14:04:42 浏览: 119
C语言中二维数组和指针数组都可以用来存储多个数据。但是它们有着不同的特点和用途。
1. 二维数组
二维数组是一个有着两个维度的数组,每个维度可以存储多个数据。它可以用来存储表格形式的数据,比如矩阵、棋盘等。
二维数组的声明方式为:`type name[row][column]`,其中type表示数据类型,name表示数组名,row和column表示数组的行数和列数。
例如,下面是一个3行4列的二维整型数组的声明:
```
int arr[3][4];
```
可以通过下标访问二维数组中的元素,例如:
```
arr[0][0] = 1;
arr[1][2] = 3;
```
二维数组的优点是可以方便地存储二维数据,并且访问速度较快。缺点是在传递到函数中时,需要指定数组的行数和列数,不够灵活。
2. 指针数组
指针数组是一个数组,其中每个元素都是一个指针。它可以用来存储多个字符串或多个指向不同类型数据的指针。
指针数组的声明方式为:`type *name[length]`,其中type表示指针指向的数据类型,name表示数组名,length表示数组的长度。
例如,下面是一个存储3个字符串的指针数组的声明:
```
char *strArr[3] = {"hello", "world", "!"};
```
可以通过下标访问指针数组中的元素,例如:
```
printf("%s\n", strArr[0]);
```
指针数组的优点是可以存储不同类型的数据,传递到函数中时,只需要传递指针数组的名字,不需要指定数组长度,更加灵活。缺点是访问速度相对较慢,需要多次间接寻址。
总的来说,二维数组适合存储表格形式的数据,而指针数组适合存储不同类型的数据。选择使用哪种方式,需要根据具体需要来决定。
阅读全文