鱼C论坛

 找回密码
 立即注册
查看: 2669|回复: 8

指向数组的指针问题

[复制链接]
发表于 2014-7-2 13:36:53 | 显示全部楼层 |阅读模式
20鱼币
本帖最后由 拈花小仙 于 2014-7-5 19:47 编辑

#include <iostream>
using namespace std;
int main()
{
    int a[2][3] = { {1,2,3}, {4,5,6} };
    int (*p)[3] = a;
    for (int i = 0; i < 2; ++i)
    {
        for (int j = 0; j < 3; ++j)
        {
            cout << *(*(p + i) + j) << endl;   // *(p+i) = p[i];  为什么此时 p是一个地址                                                                     
        }
    }
    return 0;
}
[/i]

最佳答案

查看完整内容

已知 int a[5] 则 a[3]是int类型 已知 int a[5][8] a[3]是什么类型呢,可以把这个等价为:typedef int Vec[8] Vec a[5];则a[3]类型为Vec,也就是int[8]这个类型 已知int (*p)[3] =...; 可以把这个等价为:typedef int Vec [3]; Vec *p;则 p[3]的类型和p[0]的类型一样,p[0]又等价于*(p+0),也就是*p,而*p类型是Vec,也就是 int[3]类型。所以严格说,p是一个int[3]类型,只不过数组常常转化为首元素的指针。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2014-7-2 13:36:54 | 显示全部楼层
已知 int a[5]  则  a[3]是int类型
已知 int a[5][8]   a[3]是什么类型呢,可以把这个等价为:typedef int Vec[8]    Vec a[5];则a[3]类型为Vec,也就是int[8]这个类型
已知int (*p)[3] =...; 可以把这个等价为:typedef  int Vec [3];   Vec *p;则 p[3]的类型和p[0]的类型一样,p[0]又等价于*(p+0),也就是*p,而*p类型是Vec,也就是 int[3]类型。所以严格说,p[i]是一个int[3]类型,只不过数组常常转化为首元素的指针。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2014-7-2 14:43:44 | 显示全部楼层
本帖最后由 oggplay 于 2014-7-2 15:18 编辑

[b]节约时间,看解释
#include <iostream>

using namespace std;


int main()
{   int i,j;
    int a[2][3]={3,4,5,6,7,8};
    int *p[3] ;//p表示它是一个数组,存贮3个整型变量地址即指针数组。
    int (*q)[3]; //q表明它是一个指针,所指向的数组的元素是具有3个int元素的数组

    //把元素3、4、5( 即a[1][3]中的元素)的地址存放在p指针数组中
      for( i=0;i<3;++i)
      p[i]=&a[0][i];

      //输出指针数组中地址所对应值
      for( j=0;j<3;++j)
      cout<< *p[j]<<" ";
      cout<<endl;

      q=a;//把数组a开始地址赋给指向一维数组q;
      for(i=0;i<2;i++)
      for(j=0;j<3;j++)
        cout<< *(*(q+i)+j)<<" "; //输出数组中元素
       cout<<endl;
      return 0;
}
"圣经“(<<The C programming language>>2nd)上是这么讲的
[/b] 26.png 27.png


评分

参与人数 1鱼币 +5 收起 理由
拈花小仙 + 5 小仙很笨,想了半天没懂,但很感谢

查看全部评分

想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2014-7-2 20:29:47 | 显示全部楼层
小仙! 要不要让我用反汇编给你讲啊! 嘿嘿!
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

 楼主| 发表于 2014-7-2 22:10:53 | 显示全部楼层
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

 楼主| 发表于 2014-7-4 22:17:42 | 显示全部楼层
青玄 发表于 2014-7-2 20:29
小仙! 要不要让我用反汇编给你讲啊! 嘿嘿!

想学NASM,现在的汇编教程好少好少哦

点评

对啊! masm还好,nasm就很少了,可是还是可以找到的!不过我的U盘丢了,上面的资料都找不到了,准备研究一个小型的操作系统呢,可现在资料都没了,不过,你在网上看一下,我想在网上应该有这方面的东西呢!虽然很少,  详情 回复 发表于 2014-7-5 13:33
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2014-7-5 13:33:49 | 显示全部楼层
拈花小仙 发表于 2014-7-4 22:17
想学NASM,现在的汇编教程好少好少哦

对啊! masm还好,nasm就很少了,可是还是可以找到的!不过我的U盘丢了,上面的资料都找不到了,准备研究一个小型的操作系统呢,可现在资料都没了,不过,你在网上看一下,我想在网上应该有这方面的东西呢!虽然很少,但我想找着找着就出来了!
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

 楼主| 发表于 2014-7-5 17:41:06 | 显示全部楼层
青玄 发表于 2014-7-5 13:33
对啊! masm还好,nasm就很少了,可是还是可以找到的!不过我的U盘丢了,上面的资料都找不到了,准备研究一 ...

{:7_174:}谢谢青玄,我还是喜欢nasm那样的,现在只喜欢能跨平台的
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2014-7-6 21:21:20 | 显示全部楼层
学习了!!!
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2024-11-24 14:19

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表