学习第24天

C语言

  1. 数组和多为数组、

  2. 指向多维数组的指针和指针变量、

    1. 数组名代表数组的首地址、

    2. int a[3][4];
          	int b, c;
          	for (b = 0;  b< 3; b++)
          	{
          		for (c = 0; c < 4; c++)
          		{
          			a[b][c] = 16;
          		}
          	}
          	int* d;
          	d = (int *)(a + 1);//(int *)是强制转换的意思、指向第一行的首地址、
          	*d = 51;// a[1][0]赋值成51
          	d++;//走4个字节 即a[1][1]
          	*d = 91;//将a[1][1]赋值成91
      
  3. 指针数组和数组指针、

    1. 数组中的每个元素都是个指针、并定义了每个元素的指针变量

    2. 指针数组

    3. int a[3][4];
         		int b, c;
         	for (b = 0; b < 3; b++)
         	{
         		for (c = 0; c < 4; c++)
         		{
         			a[b][c] = 16;
         		}
         	}
         	a[0][3] = 91;
         	int *d[4];
         	d[0] = &a[0][0];
         	d[1] = &a[0][1];
         	d[2] = &a[0][2];
         	d[3] = &a[0][3];
         	for (c = 0; c < 4; c++)
         	{
         		printf("c =%d
      ", *(d[c]));
         	}
      }
      
    4. 数组指针

        	1. 一维数组指针
                  	2. 
      
      int (*d)[4];//一个指针变量、指向含有4个元素的一维数组
      	
      	int a[4];
      	int b, c;
      	for (b = 0; b < 4; b++)
      	{
      		a[b] = b;
      	}
      	d = &a;  //使用地址符& a和&a 的地址相同
      	int* e;
      	e = (int*)d;//(int*)强制转换、
      	for (b = 0; b < 4; b++)
      	{
      		printf("e=%d
      ", *e);
      		e++;
      
      	}
      
      1. 二维数组、

      2.      	int(*d)[9];
             	int a[6][9];
             	int b, c;
             	for ( b = 0; b <6; b++)
             	{
             		for ( c = 0; c < 9; c++)
             		{
             			a[b][c] = b + c;
             		}
             	}
             	d = a;//二维数组可以直接赋值给数组指针、
             	int	*e;
             	e = (int *)d;
             	for(b = 0; b < 6; b++)
             	{
             		for (c = 0; c < 9; c++)
             		{
             			printf("%d    ", *e);
             			e++;
             		}
             		printf("
        --------------------------------
        ");
             	}
             	d++;//跳了40字节
             	e = (int*)d;
             
        

原文地址:https://www.cnblogs.com/chengyaohui/p/13663680.html