| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 1100 人关注过本帖
标题:指针数组行参问题,求解。主函数输出地址,调用函数就输出内容,为什么呢!!
取消只看楼主 加入收藏
默默学习
Rank: 4
等 级:业余侠客
帖 子:134
专家分:200
注 册:2010-6-22
结帖率:84.21%
收藏
已结贴  问题点数:20 回复次数:3 
指针数组行参问题,求解。主函数输出地址,调用函数就输出内容,为什么呢!!
#include "stdio.h"
int sort(int *sp[2]);
void main()
{
    int p[3][2]={{48,12},{22,54},{6,18}};
    int *sp[]={p};
    sort(p);
    printf("主函数指针数组:%d   ",sp[0]);
    printf("主函数为什么取的是指针数组的首地址.\n\n");
}
int sort(int *sp[])
{
    printf("子函数指针数组:%d ",sp[0]);
    printf("   子函数直接输出了结果?,.\n");
}
//我是这样理解的: 主函数中 **sp输出了结果48.
//那么相同的,子函数中 *sp应该也是首指针地址,而后**sp才应该是结果呀。
//为什么子函数直接输出结果了呢?难道是因为它*sp[1]={p};sp就直接是p的地址了吗?,但主函数中sp应该是表示指针数组的元素地址才对呀。

[ 本帖最后由 默默学习 于 2011-3-3 23:06 编辑 ]
搜索更多相关主题的帖子: include 
2011-03-03 22:55
默默学习
Rank: 4
等 级:业余侠客
帖 子:134
专家分:200
注 册:2010-6-22
收藏
得分:0 
首先第一句是想对你说声:谢谢.
我看了您的回答。你强调要我了解的是 二维数组名称,还有指向它的数组指针,.其实我是想尝试一下指针数组指向的问题。
比如: int p[3][2]={{48,12},{22,54},{6,18}};
       用指针数组的话,它是指针连续存放的数组.每个一个数组元素指针都可以指向一个元素的地址,对吗?
所以我这样理解:定义 int *Sp[2]={p,p[2]}; 建立一个指针数组,它有两个指针,我让p[0]第1个元素指针指向 二维数组首地址p,
               那么p既然是二维数组名称,就应该存在一个 *Sp 表示了 p[0] 首地址.,相当于Sp[0]---p ,  Sp[1]---p[2]对吧!
               所以*Sp[0]输出48.问题就在这里了,我如果用子函数来当指针数组的行参呢,那么又应该是怎么赋值跟引用的呢。
所以我不是很理解,指针数组既然可以编译通过行参,那么它又是怎么引用输出的,怎么sp[0]就直接把结果输出了。。希望老师多包涵,
小弟初学有很多不懂的地方..还望多多指教!
2011-03-04 11:39
默默学习
Rank: 4
等 级:业余侠客
帖 子:134
专家分:200
注 册:2010-6-22
收藏
得分:0 
回复 3楼 犬虫门心
麻烦老师了!
2011-03-04 11:43
默默学习
Rank: 4
等 级:业余侠客
帖 子:134
专家分:200
注 册:2010-6-22
收藏
得分:0 
回复 6楼 犬虫门心
#include "stdio.h"
int sort(int *sp[],int m,int n);
void main()
{
    int p[3][2]={{48,12},{22,54},{6,18}};
    int *sp[3]={p[0],p[1],p[2]};
    sort(sp,3,2);

}
int sort(int *sp[],int m,int n)
{
    int i, j;
     for(i = 0; i < m; i++)
        for(j = 0; j < n; j++)
           printf("%d ",sp[i][j]);
}
受教了,谢谢老师。。
测试后程序无错误提示和警告,编译成功。谢谢拉!
2011-03-04 19:25
快速回复:指针数组行参问题,求解。主函数输出地址,调用函数就输出内容,为什么呢 ...
数据加载中...
 
   



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

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