| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 2943 人关注过本帖
标题:用指向数组的指针表示多维数组
取消只看楼主 加入收藏
郭赛
Rank: 1
等 级:新手上路
帖 子:31
专家分:0
注 册:2017-12-9
结帖率:77.78%
收藏
已结贴  问题点数:10 回复次数:5 
用指向数组的指针表示多维数组
#include <stdio.h>
#include <stdlib.h>
#define N 2
#define M 2
int main()
{
   //int i=0,j=1;
   int a[M][N][2] = {1,2,3,4,5,6,7,8},(*p)[2]=a[0],(*q)[N][2]=a;

   printf("%p\n",&((*p)[2]));
   printf("%p",&((*q)[N][2]));
   return 0;
}
当把&((*p)[2]) 换成p时,结果变了,为什么?
此程序最终输出结果相同,但是a[0]和a的含义应该不同啊,这是什么原因?

下面这个问题是我遇到书上一个问题的,上面这个是我想检测指针指向的地址
#include <stdio.h>
#include <stdlib.h>
#define I 2
#define J 3
#define K 4


int main()
{
   int v[I][J][K],(*P)[J][K]=v,(*p1)[K]=v[0],n=1;
   int i,j,k;
   for(i=0;i<I;i++)
     for(j=0;j<J;j++)
       for(k=0;k<K;k++)
         {
             *(*(p1+j)+k+i*j*k) = n++;//输入v[i][j][k],最终输出不对
             //*(*(*(p+i)+j)+k) = n++;
         }
   for(i=0;i<I;i++)
     for(j=0;j<J;j++)
       for(k=0;k<K;k++)
         printf("%4d",*(*(p1+j)+k+i*j*k));//表示v[i][j][k],实际不对
         // printf("%4d",*(*(*(p+i)+j)+k));
         return 0;
}



[此贴子已经被作者于2017-12-11 14:14编辑过]

搜索更多相关主题的帖子: 指向 define int printf for 
2017-12-11 13:53
郭赛
Rank: 1
等 级:新手上路
帖 子:31
专家分:0
注 册:2017-12-9
收藏
得分:0 
回复 3楼 吹水佬
*(p+i*J*K+j*K+k) = n++;
用这个的话不就和*a = &v[0][0][0]一模一样么?
刚刚那个程序p和q指针都是指向数组的首部地址么?
2017-12-11 16:24
郭赛
Rank: 1
等 级:新手上路
帖 子:31
专家分:0
注 册:2017-12-9
收藏
得分:0 
回复 3楼 吹水佬
为何将代码 *(p+i*J*K+j*K+k) = n++;中的p改为p1就不行了
2017-12-11 16:47
郭赛
Rank: 1
等 级:新手上路
帖 子:31
专家分:0
注 册:2017-12-9
收藏
得分:0 
以下是引用吹水佬在2017-12-11 20:05:13的发言:


p、p1只是一个名字,只要是合法的、无冲突的用什么名字都无问题吧。


我运行过,显示p可以,而p1则不可以,搞不懂为什么,希望您可以为我解答。
2017-12-11 20:19
郭赛
Rank: 1
等 级:新手上路
帖 子:31
专家分:0
注 册:2017-12-9
收藏
得分:0 
图片附件: 游客没有浏览图片的权限,请 登录注册
2017-12-12 13:21
郭赛
Rank: 1
等 级:新手上路
帖 子:31
专家分:0
注 册:2017-12-9
收藏
得分:0 
以下是引用吹水佬在2017-12-11 20:28:13的发言:


怎“不可以”了,具体表现是什么?


图片附件: 游客没有浏览图片的权限,请 登录注册
这是 用指针p的情况
图片附件: 游客没有浏览图片的权限,请 登录注册
这是用指针p1的情况
2017-12-12 13:27
快速回复:用指向数组的指针表示多维数组
数据加载中...
 
   



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

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