| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 308 人关注过本帖
标题:求助 C语言二维数组名问题
只看楼主 加入收藏
c759541810
Rank: 1
等 级:新手上路
帖 子:8
专家分:0
注 册:2012-2-4
结帖率:0
收藏
 问题点数:0 回复次数:0 
求助 C语言二维数组名问题
int  *p1[3],     (*p2)[2], ** p,    a[3][2];
a) p1=a;是否语法正确?  b)  p2=a;呢? ?  为什么?请详述原因。     
 
  c)  p=a;  是否正确???
可不可以认为二维数组名是一个指向指针的指针变量?   我的理由如下

如 int a[3][4];   
书上说  C语言编译系统把二维数组a中的 a[0]  ,  a[1]  ,a[2]作为数组名来处理。   
而数组名可以认为是一个存放地址值的指针变量名,其中的地址是数组第一个元素的地址
   a[0][0]    a[0][1]  a[0][2]......
      
     a[0]  指向a[0][0]
  a[0]={a[0][0],a[0][1],a[0][2],a[0][3]}

而a数组实际上又是一个一位数组,可视为a数组由a[0],  a[1],   a[2]三个元素组成,自然数组名a也可以认为是一个指针变量名,
所以   a={a[0],a[1],a[2]}

即a[0],a[1],a[2]
   
    a   即a指向a[0]这个元素。
        所以可以得到   a→a[0]→a[0][0]
(以上箭头表示地址的指向)

a[0][0]是int类型的元素   那么a[0]是及类型为int的指针变量   那么a即为基类型为   基类型为int的指针变量 的指针变量,  即a为一个指向指针的指针变量。

这样说对么?  即当二维数组名作实参时,对应的形参可以为  指向指针的指针变量  吗?   若不对   我上述的 解释哪里错了?   请将详细一点  
搜索更多相关主题的帖子: 原因 语法 C语言 元素 
2012-02-29 01:15
快速回复:求助 C语言二维数组名问题
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.013400 second(s), 8 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved