| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 596 人关注过本帖
标题:关于指向一维数组的指针作函数参数的问题?
只看楼主 加入收藏
令狐少侠56
Rank: 3Rank: 3
等 级:论坛游侠
帖 子:320
专家分:175
注 册:2014-4-10
结帖率:58.18%
收藏
已结贴  问题点数:10 回复次数:1 
关于指向一维数组的指针作函数参数的问题?
#inlude "stdio.h"
int main()
{
    void search(float(*p)[4],int n);
    float score[3][4]={{65,67,78,79},{80,87,90,81},{90,99,100,98}};
    search(*score,12);
    return 0;
}

void search(float (*p)[4],int n )//p是指向具有4个元素的一维数组的指针
{
    int i;
    printf("The score of No.%d are:\n",n);
    for(i=0;i<4;i++)
        printf("%5.2f",*(*(p+n)+i));
     printf("\n");
}
上面的代码是谭浩强的C第四版里面的,254页上面写了这样的一段话:实参与形参如果是指针类型,应当注意它们的类型必须一致。不应把int *型的指针(及元素的地址)传给int(*)[4]型(指向一维数组)的指针变量。
关于这句话我有几个问题:这里的类型一致指的是什么?
为什么不可以将int *型的指针(及元素的地址)传给int(*)[4]型(指向一维数组)的指针变量?指针变量不就是指向地址的吗。。。。
搜索更多相关主题的帖子: return search 元素 
2015-07-09 20:53
实际应用
Rank: 5Rank: 5
等 级:职业侠客
威 望:2
帖 子:89
专家分:341
注 册:2015-5-30
收藏
得分:10 
其实, 等同与
void search(float p[][4],int n);
所以,可以这样调用
search(score, 12);

int *指针是指向int 的,+1运算时,移动4字节
而p 是二纬数组的指针,+1运算时,移动里层一维数组的元素数所占的字节数
2015-07-09 22:46
快速回复:关于指向一维数组的指针作函数参数的问题?
数据加载中...
 
   



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

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