C语言数组指针和指针数组区别
来源:千锋教育
发布人:zyh
2023-05-31
推荐
在C语言中,数组指针和指针数组是两个不同的概念。
数组指针(Pointer to an Array):数组指针是指向数组的指针变量。它存储的是数组的首地址,而不是数组的元素地址。通过数组指针,可以访问整个数组。声明数组指针时,需要指定数组的类型和大小
int (*ptr)[5]; // 声明一个指向包含5个整型元素的数组的指针
int arr[5] = {1, 2, 3, 4, 5};
ptr = &arr; // 将数组的地址赋给指针变量
在上述示例中,ptr是一个指向包含5个整型元素的数组的指针。通过ptr可以访问整个数组。
指针数组(Array of Pointers):指针数组是一个数组,其中的每个元素都是指针。每个指针可以指向不同的数据类型,也可以指向相同的数据类型。指针数组的元素是独立的指针变量,它们存储了各自指向的数据的地址。
int *arrPtr[5]; // 声明一个包含5个整型指针的数组
int num1 = 1, num2 = 2, num3 = 3, num4 = 4, num5 = 5;
arrPtr[0] = &num1;
arrPtr[1] = &num2;
arrPtr[2] = &num3;
arrPtr[3] = &num4;
arrPtr[4] = &num5;
在上述示例中,arrPtr是一个包含5个整型指针的数组。通过arrPtr的各个元素,可以存储不同整型变量的地址。
综上所述,数组指针是指向数组的指针变量,用于访问整个数组;而指针数组是一个数组,其中的每个元素都是指针变量,用于存储不同变量的地址。
下一篇c语言结构类型的定义