| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 2285 人关注过本帖
标题:关于二维数组地址的表示方法求解惑!~
取消只看楼主 加入收藏
悠闲的紫
Rank: 1
等 级:新手上路
帖 子:21
专家分:0
注 册:2008-10-13
收藏
 问题点数:0 回复次数:5 
关于二维数组地址的表示方法求解惑!~
一个正常的二维护数组可以用下面的方法赋值
如: char a[2][3]={"abc","def"};
一般是赋初值的时候这样用的吧.
那么调用时可把二维数组看成是两个一维的数组.
  在一维数组中 如:int nub={1,2,3,4,5};
在一维数组中nub,不仅带表了一维数组的数组名,
它还是一个地址(它代表nub这个数组中第一个数的
地址,也就是数组的首地址.)

那么在二维数组a[2][3]={"abc","def"};中,a它代表
的就是这个二维数组中第一个一维数组的地址.
但这样理解是错的.
真正代表这个二维数组中第一个一维数组的地址的是
a[0],而a表示的是二维数组中第一个一维数组的第一
个数的地址.当然&a[0][0]也表示的是这个数.
那么a      &a[0][0]  之间有着什么样的差别呢?

[[it] 本帖最后由 悠闲的紫 于 2008-10-20 16:58 编辑 [/it]]
搜索更多相关主题的帖子: 解惑 地址 
2008-10-20 16:15
悠闲的紫
Rank: 1
等 级:新手上路
帖 子:21
专家分:0
注 册:2008-10-13
收藏
得分:0 
如下面的一段代码
#include<stdio.h>
void main()
{
    int nub[2][3]={{1,2,3},{4,5,6}};
    printf("please press key:");
    
    for(int i=0;i<2;i++)
    {
        for(int j=0;j<3;j++)
        {
            scanf("%d",&a[i][j]);
        }
    }
    
    for(int i=0;i<2;i++)
    {
        for(int j=0;j<3;j++)
        {
            printf("%4d ",(*(a+i))[j]);

        }printf("\n");
    }
}

把知识都和我说
2008-10-20 16:30
悠闲的紫
Rank: 1
等 级:新手上路
帖 子:21
专家分:0
注 册:2008-10-13
收藏
得分:0 
两段for嵌套中要不断的循环调用数组,
区别在于 :
   第一段中scanf调用的是二维数组的每个地址.
而第二段printf是调用每个scanf输入二维数组的值.

表示二维数组的值的方法:
首先最容易理解的就是  a[i][j]

进而==>用  *(a[i]+j)   表示,

更进一步==>  *(*(a+i)+j)

在后来==>   (*(a+i))[j]

也能表示.

把知识都和我说
2008-10-20 16:45
悠闲的紫
Rank: 1
等 级:新手上路
帖 子:21
专家分:0
注 册:2008-10-13
收藏
得分:0 
可是我不明白.....
这么多表示的方法都应该怎么去理解:......
比如:
*(a[i]+j)    *(*(a+i)+j)
中....
a[i] 指的是什么?   a[i]和 *(a+i)是否有什么不同
没有不同 那 *(*(a+i)+j)  中的 (a+i) 代表的是个什么东东?

把知识都和我说
2008-10-20 16:52
悠闲的紫
Rank: 1
等 级:新手上路
帖 子:21
专家分:0
注 册:2008-10-13
收藏
得分:0 
qfyzy大大!~~
我不是不想写规范的格式,
是我根本就不知道怎么写才算规范.
而且对c很多东西都不了解.
现在我对c的了解真的是少知又少.
还请不惜赐教.最好还能推荐几本
打包的c电脑书.能从最初级的最好.

把知识都和我说
2008-10-20 17:06
悠闲的紫
Rank: 1
等 级:新手上路
帖 子:21
专家分:0
注 册:2008-10-13
收藏
得分:0 
我看别人写的啊,而且试了这样也能用的.

把知识都和我说
2008-10-20 17:33
快速回复:关于二维数组地址的表示方法求解惑!~
数据加载中...
 
   



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

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