| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 550 人关注过本帖
标题:有关指针指向二维数组的小插曲,求个小问?(需要详解)
取消只看楼主 加入收藏
林浩
Rank: 2
等 级:论坛游民
帖 子:47
专家分:23
注 册:2011-1-12
结帖率:90.91%
收藏
已结贴  问题点数:20 回复次数:1 
有关指针指向二维数组的小插曲,求个小问?(需要详解)
觉得指针很有意思,所以想搞清楚。
  一个数组转置的问题:
#include<stdio.h>

void main()
{
    void zhuanzhi(int (*p1)[3], int (*p2)[3], int n);

    int a[3][3], b[3][3], i, j, *pa, *pb;

    printf("please input the a:\n");
    for (i = 0; i < 3; i ++)
    {
        for (j =0; j < 3; j++)
        {
            scanf("%d", &a[i][j]);
        }
    }

    pa= a[0];                     这里如果用 p=a;p=b就不行, 他们不是都是二维数组a的首行地址吗,有什么区别呢??
    pb= b[0];

    zhuanzhi(pa, pb, 3);

    printf("please output the b:\n");

    for (pb = b[0]; pb < b[0] + 9; pb++)
    {
        if ((b[0] - pb) % 3 == 0)
        {
            printf("\n");
        }
        printf("%4d", *pb);
    }
}

void zhuanzhi(int (*p1)[3], int (*p2)[3], int n)    如果这里和主函数中的(*p1)[3],(*p2)[3]都改成*p1,*p2程序就报错,为什么一定要定它的列数呢?
{
    int i,j;

    for (i = 0; i < n; i ++)
    {
        for (j = 0; j<n; j++)
        {
            *(*(p2+i)+j)  = *(*(p1+j)+i);
        }
    }
}

   在此小弟感谢你们的帮助!!!!!!!!
搜索更多相关主题的帖子: include please 
2011-02-27 12:29
林浩
Rank: 2
等 级:论坛游民
帖 子:47
专家分:23
注 册:2011-1-12
收藏
得分:0 
回复 2楼 cacker
那我把p=a改成p=*a可以不呢
2011-02-27 16:11
快速回复:有关指针指向二维数组的小插曲,求个小问?(需要详解)
数据加载中...
 
   



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

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