| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 1835 人关注过本帖
标题:(新手入门) 一个指向二维数组元素的指针变量,内存地址怎么不连续?
只看楼主 加入收藏
shan_hu
Rank: 1
等 级:新手上路
帖 子:11
专家分:0
注 册:2014-7-8
结帖率:100%
收藏
已结贴  问题点数:10 回复次数:4 
(新手入门) 一个指向二维数组元素的指针变量,内存地址怎么不连续?
#include<stdio.h>
void main()
{
    int a[3][4]={1,3,5,7,9,11,13,15,17,19,21,23};
    int *p;
    for(p=a[0];p<a[0]+12;p++)
    {
        if((p-a[0])%4==0)
            printf("\n");
        printf("addr=%o,value=%2d\n",p,*p);
    }
}

运行结果的第十行到第十一行时,地址addr,怎么不是加4,二十突然加了,26?
还请有经验的前辈指教。
图片附件: 游客没有浏览图片的权限,请 登录注册
搜索更多相关主题的帖子: 元素 
2014-07-08 17:18
chrisgardner
Rank: 3Rank: 3
等 级:论坛游侠
威 望:1
帖 子:73
专家分:114
注 册:2013-9-25
收藏
得分:2 
debug 换 release 试试看!
2014-07-08 17:26
shan_hu
Rank: 1
等 级:新手上路
帖 子:11
专家分:0
注 册:2014-7-8
收藏
得分:0 
回复 2 楼 chrisgardner
release 什么意思?怎么操作。
我的VC6.0与我的系统部兼容,是不是这个原因呢?
2014-07-08 17:31
Explorerlxz
Rank: 9Rank: 9Rank: 9
来 自:zzu
等 级:蜘蛛侠
威 望:4
帖 子:302
专家分:1032
注 册:2013-4-24
收藏
得分:8 
#include <stdio.h>
int main()
{
    int a[3][4]={1,3,5,7,9,11,13,15,17,19,21,23};
    int *p;
    for(p=a[0];p<a[0]+12;p++)
    {
        if((p-a[0])%4==0)
            printf("\n");
        printf("addr=0x%x,value=%2d\n",p,*p);//楼主用的%o表示地址即八进制,我用的%x即16进制,上面并没有一下子增加26,是你理解成10进制了
    }
    return 0;
}
2014-07-08 18:28
shan_hu
Rank: 1
等 级:新手上路
帖 子:11
专家分:0
注 册:2014-7-8
收藏
得分:0 
回复 4 楼 Explorerlxz
惭愧,惭愧,没有静下心来看。谢谢,谢谢。
2014-07-08 18:54
快速回复:(新手入门) 一个指向二维数组元素的指针变量,内存地址怎么不连续?
数据加载中...
 
   



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

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