数组指针和指针数组
时间: 2023-07-20 11:18:42 浏览: 117
数组指针和指针数组是两个不同的概念。
数组指针是指一个指向数组的指针变量,它可以指向一个数组的首地址,也可以指向二维数组的第一个一维数组的首地址。例如:
```
int arr[3][4];
int (*p)[4] = arr; // p是一个指向数组arr的指针
```
指针数组是指一个数组,数组中的每个元素都是一个指针变量,每个指针变量可以指向不同的内存地址。例如:
```
int a = 1, b = 2, c = 3;
int *arr[3] = {&a, &b, &c}; // arr是一个指针数组,每个元素都是int类型的指针变量
```
注意,数组指针和指针数组的定义方式不同,使用时也有区别。数组指针可以通过指针加下标的方式访问数组元素,指针数组可以直接通过下标访问指针变量。
相关问题
c语言数组指针和指针数组
C语言中,数组指针和指针数组都是指针类型,但它们的含义和使用方法不同。
数组指针是指向数组的指针,我们可以通过数组指针来访问数组中的元素。数组指针的声明方式为:类型 (*指针变量名)[数组长度],例如:
```
int arr[3] = {1, 2, 3};
int (*p)[3]; // 声明一个指向长度为3的int数组的指针变量
p = &arr; // 指针指向数组arr
```
指针数组是一个数组,其中的每个元素都是指针类型。指针数组的声明方式为:类型 *指针变量名[数组长度],例如:
```
int a = 1, b = 2, c = 3;
int *arr[3] = {&a, &b, &c}; // 声明一个指针数组,其中的元素都是int类型的指针
```
需要注意的是,数组指针和指针数组都可以通过下标来访问元素,但其访问方式不同。对于数组指针,我们可以通过指针变量名加上下标来访问,例如:`(*p)[0]`;对于指针数组,我们可以通过下标加上指针变量名来访问,例如:`arr[0]`。
数组指针和指针数组区别
数组指针和指针数组是两种不同的概念。
数组指针是指一个指向数组的指针变量,它可以指向一个数组的首地址。我们可以通过数组指针来操作数组中的元素,可以通过指针的偏移来访问数组中的元素,也可以通过指针的解引用来获取数组中的元素值。例如,int (*p)[5]表示一个指向包含5个整数的数组的指针。
指针数组是指一个数组,其中每个元素都是指针类型。这些指针可以指向不同的对象或者相同类型的对象。我们可以通过指针数组来访问不同的对象,也可以通过指针数组来实现一些高级的数据结构。例如,int *p[5]表示一个包含5个指向整数的指针的数组。
因此,数组指针和指针数组的区别在于它们指向的对象不同。数组指针指向的是一个数组,而指针数组本身就是一个数组,其中的元素都是指针类型。
阅读全文