c语言编程笔录

首页 >   > 笔记大全

笔记大全

指针数组和数组指针的区别是什么

更新时间:2023-07-10

指针数组和数组指针的区别

在C语言中,指针数组和数组指针都是我们经常用到的概念。虽然它们看起来有些相似,但它们的含义和用法是不同的。

指针数组

指针数组是由若干个指针变量组成的数组。每个指针变量存储着一个数组元素的地址,通过它们可以访问该数组的不同元素。指针数组可以用来存储多种数据类型的数据。


	int *p[3]; // 定义一个指针数组,包含了3个int型指针变量
	int a=10, b=20, c=30;
	p[0]=&a; // 指向a
	p[1]=&b; // 指向b
	p[2]=&c; // 指向c
	for (int i=0; i < 3; i++) {
	    printf("%d\n", *p[i]); // 通过循环输出每个指针变量所指向的值
	}
	

数组指针

数组指针是指一个指针,它指向一个数组。数组指针可以用来访问数组中的元素,但它只能操作特定类型的数据。


	int a[3]={10, 20, 30};
	int (*p)[3]; // 定义一个指向包含3个int类型的数组的指针变量
	p=&a;
	for (int i=0; i < 3; i++) {
	    printf("%d\n", (*p)[i]); // 通过循环输出每个数组元素的值
	}
	

指针数组和数组指针的比较

虽然指针数组和数组指针的概念有所不同,但有时我们可以使用它们的相似之处来达到类似的目的。下面是它们的比较:

  1. 指针数组是一个数组,其中的元素都是指针,它们可以指向不同类型的数据。而数组指针是一个指针,在指向数组的同时,也指定了元素的类型。
  2. 指针数组的元素可以通过下标访问,而数组指针需要使用指针运算符和下标运算符进行访问。
  3. 指针数组可以用于存储多个指向不同类型数据的指针,如int型、char型等;而数组指针只能操作特定类型的数据。
  4. 指针数组和数组指针都可以作为函数参数传递,在函数中可以修改它们所指向的数据。

总结

指针数组和数组指针都是C语言中常用的数据类型,它们各自有不同的含义和用法。指针数组是由多个指针变量组成的数组,通过它们可以访问不同类型的数据。而数组指针是一个指向数组的指针,它可以访问特定类型的数据。虽然它们的概念有所不同,但有时我们可以使用它们的相似之处来达到类似的目的。应该根据实际需要选择不同的数据类型,以达到最好的效果。