c#开发园地

c#开发园地

管理

对于复杂类型的描述(这个还不太算很复杂),首先你一定要知道构造符号的三对(个)运算符:*     []     ()  
  []和()的结合性很强,而*的结合力较弱;  
  []和()采用从左到右的结合方式,而*是从右向左。  
   
  你的例子中:  
  int   *a[N];/*首先a是一个数组,因为a的后面紧跟了一个[],它的优先级是很高的(比*高),其次它的每一个元素a[0]、a[1]、a[2]、a[3]....都是一个指针,是一个int型的指针,实际上关于指针的类型只是一种表示方法与叫法而已,每一种指针都是一样的,我们说一个指针的类型是指它所能指向的类型,比方说这里的每个指针元素都指向一个int型的整数。*/  
   
  int   (*a)[N];/*首先a是一个指针,因为*a外面有一对(),其次这针指向具有16个元素的整型数组,因为后面有一对   []*/  
   
  总之优先级:()>[]>*  
'

 

 

他们是不一样的,在2重数组中就很容易看出来:  
  int   *a[N];//表示声明一个指向int的指针数组  
  int   b[4][5];  
  int   (*a)[5]=b;//表示指针变量指向二维数组中的一维数组,可以用  
  *(a+i)来表示二维数组第i行对应的一维数组首地址

posted on 2008-11-13 11:04  chl  阅读(729)  评论(0)    收藏  举报