当前位置: 代码迷 >> C语言 >> 教科书级的多重指针问题
  详细解决方案

教科书级的多重指针问题

热度:226   发布时间:2007-08-06 19:04:23.0
教科书级的多重指针问题
char *arr[20];
char **parr=arr;
那么parr==arr?
*parr==*arr==arr[0]?
**parr==*arr[0]?
以上三个等式应该是对的吧?????
各位大虾赶快给个答案,小弟拜谢!!!!!
搜索更多相关的解决方案: 指针  教科书  arr  等式  

----------------解决方案--------------------------------------------------------
yes!!!
----------------解决方案--------------------------------------------------------
你基础很好!!那么你觉得(*arr)[20]和*arr[20]有什么不同啊??
----------------解决方案--------------------------------------------------------
.......
函数
数组
----------------解决方案--------------------------------------------------------
(*arr)[20]是数组吧,你前边应该加上 数据类型 (*arr)[20],arr指向含20个元素的数组,指向这个数组的首地址,叫数组指针对不对?
*arr[20]是指针吧,指针数组arr,由20个指针元素组成,前边应该加上 数据类型 *arr[20],arr[0]…arr[19]都是指针,*arr==arr[0],**arr==*arr[0],对吧?

----------------解决方案--------------------------------------------------------
优先级别()>[]>*
----------------解决方案--------------------------------------------------------
(*arr)[20]是指针
说明(*arr)是有20个元素的数组,那么arr就是指向有20个元素这样数组的指针,就如arr[][20]一样!!!


int year[12][31];
int (*arr)[31];
初始化方法一:
for(i=0;i<12;i++)
for(j=0;j<31;j++)
*(*(year+i)+j)=0;或者直接year[i][j]=0;

初始化方法二:
for(arr=year;arr!=(year+12);arr++)
{
int *day;
for(day=*arr;day!=*arr+31;day++)
*day=0;
}

主要是为了让你知道(*arr)[20]和二维数组的关系!!


接着
int *arr[20]是数组;
就不用说了:数组的元素是20个int指针
----------------解决方案--------------------------------------------------------

我开头给写错了后边都对,查了谭浩强那本书,(*arr)[20]是指针,叫数组指针,int *arr[20]是数组,叫指针数组
感谢viky2003的纠正!


----------------解决方案--------------------------------------------------------
  相关解决方案