数组指针与指针数组

#include <stdio.h>

int main()
{
	int arr[4][4] ={0,1,2,3,4,5,6,7,
				8,9,10,11,12,13,14,15};
	int i;
	for(i=0;i<4;i++)
	{
		printf("使用arr+i求得二维数组arr第%d行的起始地址为:%d\n",i+1,arr+i);
	}
	printf("\n"); 
	for(i=0;i<4;i++)
	{
		printf("使用arr[i]求得二维数组arr第%d行的起始地址为:%d\n",i+1,arr[i]);
	}
	printf("\n");
	for(i=0;i<4;i++)
	{
		printf("使用*(arr+i)求得二维数组arr第%d行的起始地址为:%d\n",i+1,*(arr+i));
	}
	printf("\n");
	for(i=0;i<4;i++)
	{
		printf("使用&arr[i]求得二维数组arr第%d行的起始地址为:%d\n",i+1,&arr[i]);
	}
	printf("\n");		
	return 0;
}
#include <stdio.h>

int main()
{
	int arr[4][4] ={0,1,2,3,4,5,6,7,
					8,9,10,11,12,13,14,15};
	int (*p1)[4];	//数组指针
	int *p2[4];		//指针数组
	int i,j,k;
	p1 = arr;
	printf("使用数组指针的方式访问二维数组arr\n");
	for(i=0;i<4;i++)
	{
		for(j=0;j<4;j++)
		{
			printf("arr[%d][%d]=%d\t",i,j,*((*p1+i)+j));
		}
		printf("\n");
	} 
	printf("使用指针数组的方式访问二维数组arr\n");
	for(k=0;k<4;k++)
	p2[k] = arr[k];
	
	for(i=0;i<4;i++)
	{
		for(j=0;j<4;j++)
		{
			printf("arr[%d][%d]=%d\t",i,j,*(p2[i]+j));
		}
		printf("\n");
	}
	return 0;
} 


郑重声明:本站内容如果来自互联网及其他传播媒体,其版权均属原媒体及文章作者所有。转载目的在于传递更多信息及用于网络分享,并不代表本站赞同其观点和对其真实性负责,也不构成任何其他建议。