您的位置:首页 > 其它

对于数组与指针的理解

2012-09-10 22:11 239 查看
/************************************************************************/
/*  深入理解指针与数组的区别                                            */
/************************************************************************/
#include<stdio.h>

int array_list[2][3] ={{1,2,3},{1,2,3}};
int (*p)[3];
int array_list1[10] = {1, 2, 3, 4, 5, 6, 7, 8, 9 , 10};

int array_list2[2][3][4] = {{{1,2,3,4},{5,6,7,8},{9,10,11,12}},{{13,14,15,16},{17,18,19,20},{21,22,23,24}}};

int main()
{
	int *p;
	
	p = array_list[0];
	printf("array_list       = %d\n", array_list);
	printf("array_list[0]    = %d\n", array_list[0]);
	printf("array_list[1][1] = %d\n", array_list[1][1]);
	
	printf("*(array_list[1] + 1) = %d\n", *(array_list[1] + 1));
	printf("*((int *)(array_list + 1) -2) = %d\n", *((int *)(array_list + 1) -2));

	printf("*(p + 1) = %d\n", *(p+1));
	printf("*(*(array_list + 1) + 1) = %d\n", *(*(array_list + 1) + 1));

	//比较怪癖的东西,其实本质上是一样的。
	printf("1[array_list1] = %d\n", 1[array_list1]);

	printf("array_list2[1][1][1] = %d\n", array_list2[1][1][1]);
	printf("(*(*(*(array_list2+1)+1)+1)) = %d\n", (*(*(*(array_list2+1)+1)+1)));

	
	return 0;
}

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: