| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 877 人关注过本帖, 1 人收藏
标题:为什么出来的答案是60?【指针数组,指针没学好的勿入!】
取消只看楼主 加入收藏
love24114
Rank: 5Rank: 5
等 级:职业侠客
威 望:1
帖 子:223
专家分:399
注 册:2011-7-11
结帖率:81.48%
收藏(1)
已结贴  问题点数:20 回复次数:4 
为什么出来的答案是60?【指针数组,指针没学好的勿入!】
#include <stdio.h>
int main()
{
    int a[3][2]={10,20,30,40,50,60},(*p)[2];
    p=a;
    printf("%d\n",*(*(p+2)+1));
    return 0;
}
//还有下面这个问题
#include <stdio.h>
int main()
{
    int a[2],(*p)[2];
    p=a;//这句怎么会通过啊??我郁闷
    printf("%p %p\n",a,a+2);
    printf("%p %p\n",p,p+2);
    return 0;
}
//为什么偏移量不一样呢???主要是这个问题。

[ 本帖最后由 love24114 于 2012-1-8 20:06 编辑 ]
搜索更多相关主题的帖子: include return 
2012-01-08 19:14
love24114
Rank: 5Rank: 5
等 级:职业侠客
威 望:1
帖 子:223
专家分:399
注 册:2011-7-11
收藏
得分:0 
#include <stdio.h>
int main()
{
    int a[2],(*p)[2];
    p=a;//这句怎么会通过啊??我郁闷
    printf("%p %p\n",a,a+2);
    printf("%p %p\n",p,p+2);
    return 0;
}
//为什么偏移量不一样呢???主要是这个问题。

[ 本帖最后由 love24114 于 2012-1-8 19:46 编辑 ]
2012-01-08 19:39
love24114
Rank: 5Rank: 5
等 级:职业侠客
威 望:1
帖 子:223
专家分:399
注 册:2011-7-11
收藏
得分:0 
回复 3楼 有容就大
为什么p+2是指向第三列,p+2,指针也占4字节。
2012-01-08 19:44
love24114
Rank: 5Rank: 5
等 级:职业侠客
威 望:1
帖 子:223
专家分:399
注 册:2011-7-11
收藏
得分:0 
可以,自己试下就知道。C语言。
2012-01-08 19:44
love24114
Rank: 5Rank: 5
等 级:职业侠客
威 望:1
帖 子:223
专家分:399
注 册:2011-7-11
收藏
得分:0 
a[3][2],我觉得前面个3和指针没有任何直接的联系,
有关系的不过是偏移量,
你可以把下面的代码运行下,
就知道你的理论是不对的。

#include <stdio.h>
int main()
{
    int a[3][2]={10,20,30,40,50,60},(*p)[4];
    p=a;
    printf("%d\n",*(*(p+1)+1));
    return 0;
}
2012-01-08 20:03
快速回复:为什么出来的答案是60?【指针数组,指针没学好的勿入!】
数据加载中...
 
   



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

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