玩转C语言-- 指针数组和数组指针

目录

什么叫数组

什么叫指针

定义

指针数组

数组指针

总结


什么叫数组

数组就是相同数据类型的元素按一定顺序排列组合在一起,如下举例

int arr[10] = { 0 ,1,2,3,4,5,6,7,8,9};//整型数组
char ch[]={'a','b','c','d'};//字符数组

什么叫指针

指针就是内存地址,指针变量是用来存放内存地址的变量。

int a = 1;
int* p = &a;//整型地址存放在整型指针中

char ch = 'w';
char* pc = &ch;//字符的地址存放在字符指针中

定义

数组指针就是只有一个单独的指针指向一个数组,就是数组的指针,是一个指针。

指针数组就是由指针组成一个数组,就是指针的数组,是一个数组。

在程序中如何区分是数组指针还是指针数组要学会区分符号的优先级 ()>[ ]>*

int* arr[5]={1,2,3,4,5};//指针数组
int (*p)arr[5]={1,2,3,4,5};//数组指针

指针数组

由下列程序调试可知,数组中的元素类型是指针,所以称为指针数组

玩转C语言-- 指针数组和数组指针_第1张图片

 应用代码

#include
int main()
{
	int* arr[5] = { 1,2,3,4,5 };
	int sz = sizeof(arr) / sizeof(arr[0]);

	int i = 0;
		for (i = 0; i < sz; i++)
		{
		printf("%d ", *(arr+i));
	    }
		printf("\n");
	
}
	return 0;

数组指针

在普通的整型数组的,元素都是int型

在数组指针中,有一个指针指向数组中,

如下所示

玩转C语言-- 指针数组和数组指针_第2张图片

 应用举例

#include
int main()
{
	int arr[5] = { 1,2,3,4,5 };
	int(*p)[5] = &arr;

    int sz = sizeof(arr) / sizeof(arr[0]);

	int i = 0;
	for (i = 0; i < sz; i++)
	{
		printf("%d ", (*p)[i]);
    }
	printf("\n");
	

	return 0;
}

总结

这是一个简单的结束,大家可以看得懂,后面更深的知识需要大家自己去感悟。

你可能感兴趣的:(c语言)