| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 863 人关注过本帖
标题:int数组中地址是连续的
只看楼主 加入收藏
Magic_July
Rank: 3Rank: 3
等 级:论坛游侠
帖 子:102
专家分:109
注 册:2012-9-25
结帖率:100%
收藏
 问题点数:0 回复次数:6 
int数组中地址是连续的
程序代码:
#include<stdio.h>
int main()
{
    int* _xy[25];
    int xy[25]={1};
    int i;
    for(i=0;i<25;i++)
    {
        printf("%p\n",&xy[i]);
    }
}
//int 数组地质是连续的,之间的差值是4位?! 
2013-06-13 22:24
Magic_July
Rank: 3Rank: 3
等 级:论坛游侠
帖 子:102
专家分:109
注 册:2012-9-25
收藏
得分:0 
程序代码:
#include<stdio.h>
int main()
{
    int xy[5][5]={1};
    int i,j;
    for(i=0;i<5;i++)
    for(j=0;j<5;j++)
    printf("xy[%d][%d]%p\n",i,j,&xy[i][j]);
}

二维数组,和一维一样
2013-06-13 22:27
Magic_July
Rank: 3Rank: 3
等 级:论坛游侠
帖 子:102
专家分:109
注 册:2012-9-25
收藏
得分:0 
程序代码:
#include<stdio.h>
int main()
{
    int xy[5][5]={1};
    int i,j;
    for(i=0;i<5;i++)
    {for(j=0;j<5;j++)
    {xy[i][j]=i*10+j;printf("%.2d ",xy[i][j]);}
    printf("\n");}
    while(1)
    {scanf("%d%d",&i,&j);
    printf("%p\n%p\n%d\n",&xy[i][j],&xy[i][j]+1,*(&xy[i][j]+1));}
}

 
2013-06-13 22:41
蚕头燕尾
Rank: 10Rank: 10Rank: 10
来 自:Gryffindo
等 级:贵宾
威 望:12
帖 子:734
专家分:1546
注 册:2013-3-24
收藏
得分:0 
在32位字长的计算机中,int类型的数据是4个字节,它的数值范围是(-2的31次方)到(2的31次方-1),

貌似没有什么错误吧

不知道楼主想说什么哎



#include<stdio.h>
int main()
 {
     int x[3]={1,2,3};
     int *p=x;

     printf("%d\n%d\n",p,p+1);

     return 0;
 }


学习编程,为的是表达自己的思想,而不是被别人的思想所禁锢。要先明白自己想干嘛,而不要先问别人让你干嘛。               

                                                                                                                    Black Cat      Hello Tomorrow~
2013-06-13 23:10
ceoooec
Rank: 2
等 级:论坛游民
威 望:1
帖 子:26
专家分:61
注 册:2013-6-11
收藏
得分:0 
int类型在32位系统中就是4字节的,楼主数组是int类型的指针每加1地址实际移动了四个字节
2013-06-13 23:22
蚕头燕尾
Rank: 10Rank: 10Rank: 10
来 自:Gryffindo
等 级:贵宾
威 望:12
帖 子:734
专家分:1546
注 册:2013-3-24
收藏
得分:0 
话说楼主感觉应该是几啊?


学习编程,为的是表达自己的思想,而不是被别人的思想所禁锢。要先明白自己想干嘛,而不要先问别人让你干嘛。               

                                                                                                                    Black Cat      Hello Tomorrow~
2013-06-14 00:02
bccn新
Rank: 3Rank: 3
等 级:论坛游侠
威 望:1
帖 子:57
专家分:144
注 册:2013-5-10
收藏
得分:0 
在定义数组时,内存单元是连续分配的,所以地址是均匀变化的,相邻两元素的地址差就是该数组元素类型所占字节数了。二维数组实际是按一维数组方式存储的,如a[i][j]是先分配j个内存单元(内存单元不一定是一字节,大小根据数组类型而定)给a[0][0]~a[0][j-1],接着又分配j个内存单元给a[1][0]~a[1][j-1],依次类推。
2013-06-14 00:25
快速回复:int数组中地址是连续的
数据加载中...
 
   



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

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