| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 1805 人关注过本帖
标题:多维数组名可以直接赋值给指针变量吗?
只看楼主 加入收藏
朔源
Rank: 1
等 级:新手上路
帖 子:105
专家分:4
注 册:2015-9-22
结帖率:90%
收藏
已结贴  问题点数:15 回复次数:6 
多维数组名可以直接赋值给指针变量吗?
int main(void)
{
    float a[][3]={{1,2,3},{4,5,6},{7,8,9}};
    float * p;
    int i;
    p = a;  //  多维数组名为什么不能直接赋给指针
    for(i = 0;i < 9;i++)
    printf(" %5.2f",* p++);
    printf("\n");
    return(0);
}
搜索更多相关主题的帖子: return 
2015-11-02 11:06
wp231957
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
来 自:神界
等 级:贵宾
威 望:423
帖 子:13688
专家分:53332
注 册:2012-10-18
收藏
得分:1 
  p = &a[0][0];

DO IT YOURSELF !
2015-11-02 11:14
wp231957
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
来 自:神界
等 级:贵宾
威 望:423
帖 子:13688
专家分:53332
注 册:2012-10-18
收藏
得分:1 
或者
   p = a[0];  

DO IT YOURSELF !
2015-11-02 11:15
vvvcuu
Rank: 9Rank: 9Rank: 9
等 级:贵宾
威 望:12
帖 子:353
专家分:1253
注 册:2014-4-22
收藏
得分:10 
事实上的多维数组是不存在的,所谓的二维数组或者高维数组不过是元素是比其低一个维度的数组的数组而已。

对于二维以上的数组,如果把数组名直接赋值给指针变量,计算机会因为找不着北报错。

这就好比在一个班级中找一个人,你需要知道这个人具体在哪一列哪一排才能定位准确,但是只告诉你从第1排第一列开始查找,你一样迷糊究竟是先按照排查起还是按照列查起。

代码测试环境:  WinXP+C-Free5.0.
2015-11-02 11:36
qq1625127317
Rank: 6Rank: 6
等 级:侠之大者
威 望:1
帖 子:185
专家分:450
注 册:2015-9-3
收藏
得分:2 
p = &a[0][0]   p = &a[0]这些不同的写法他还是有区别的

静坐常思己过,闲谈莫论人非
2015-11-02 12:50
wmf2014
Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19
等 级:贵宾
威 望:216
帖 子:2039
专家分:11273
注 册:2014-12-6
收藏
得分:1 
大概(*p)[3]可以p=a;是编译器阻止了。

能编个毛线衣吗?
2015-11-02 14:02
朔源
Rank: 1
等 级:新手上路
帖 子:105
专家分:4
注 册:2015-9-22
收藏
得分:0 
回复 4楼 vvvcuu
谢谢!
2015-11-05 09:49
快速回复:多维数组名可以直接赋值给指针变量吗?
数据加载中...
 
   



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

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