注册 登录
编程论坛 C语言论坛

请各位大佬帮忙注释一下每一步,谢谢

lct666 发布于 2020-12-23 18:50, 1017 次点击
#include <stdio.h>
int main ()
{
   int i = 0;             //定义一个变量并赋值。
 
   int ar[10];            //定义一个数组。

   int *t;                //定义指针。
 
   int *p1[10];           //定义一个含有十个指针的数组。
  
   int **p2;              //是指向指针的指针。
  
   int a2d[10][10];       //定义二维整型数组a2d[][]。
  
   int (*p)[10][10];      //是一个指向一个二维数组的指针。
  
   int (*q)[10];          //是一个指向数组的指针。
  
   int (**r)[10];         //是指向数组指针的数组。
 
   int (*s[2])[10];       //是数组,这个数组是放指针的,是放数组指针的。
  
   p = &a2d;              //
  
   p[0] = a2d[0];         //
  
   q = &ar;               //
   
   q = &a2d[0];           //
  
   q = a2d;               //
  
   r[1] = &ar;            //
 
   s[0] = &ar;            //
 
   r = s;                 //
  
   s = r;                 //
  
   t = ar;                //
  
   p1[0] = t;             //
  
   p2 = t;                //
 
   p2 = &t;               //
 
   p2 = p1;                  //

   return 0;              //
 }
1 回复
#2
风过无痕19892020-12-26 19:38
回复 楼主 lct666
第26行定义错误:p[0] = a2d[0]; p[0] 是int * 型,a2d[0] 是 int [10][10] 型, 级别不同,不能赋值;
第40行定义错误:s = r; s 是 int (*s[2])[10] 型,int(**r)[10] 型,类型不同,不能赋值;
第46行定义错误:p2 = t; p2 是 int ** 型,t 是 int * 型,同样是级别不同,不能赋值;
1