c: Pointer two-dimensional array

发布时间 2023-10-09 22:21:09作者: ®Geovin Du Dream Park™

 

    printf("hello world, c \n");
    printf("你好,中国\n");


    int duArry[] = {0,1,2,3,4,5} ;
    int* pArr;
    pArr = duArry;
    pArr = &duArry[0] ;
    int l=sizeof(duArry)/sizeof(duArry[0]);
    for(int i=0;i<l;i++)
    {
        //printf("%d\n",*(pArr));//通过指针偏移即能访问后续元素 可以
        printf("%d\n",*(duArry+i));
    }
    int du[5][4] = {1,2,3,4,5,9,1,0,5,6,7,8,2,4,6,9,6,3,7,9};
	
	//	指针遍历数组的第二种方式:
	int *dup = &du[0][0]; 		//	声明了一个指针变量,(仅仅也只是一个一维条件下的变量) 
	for(int i=0; i<5; i++)
	{
		for(int j=0; j<4; j++)
		{
			/*下面的这个指针变量的遍历也即仅仅是按位一个个的对其访问*/ 
			printf("%3d ", *dup++);		
		}
		printf("\n");
	}
    int DuArrys[3][5] = { {1,2,3,4,5},{2,3,4,5,6},{3,4,5,6,7} };
    int *geovindup[3] = {DuArrys[0], DuArrys[1], DuArrys[2]}; //
    for(int i=0; i<3; i++)
	{
		for(int j=0; j<5; j++)
		{
			/*下面的指针变量方式也即对应的是这个指针数组的遍历方式*/ 	
	       //printf("%3d ", *(*(geovindup+i)+j));	//	正确 
			printf("%3d ", *(geovindup[i]+j)) ;		//正确 
		
		}
		printf("\n");
	}