| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 342 人关注过本帖
标题:形参是数组的问题
只看楼主 加入收藏
jokerbat
Rank: 2
等 级:论坛游民
帖 子:77
专家分:91
注 册:2012-2-1
结帖率:50%
收藏
已结贴  问题点数:20 回复次数:3 
形参是数组的问题
当形参是数组时应该注意什么
#include<stdio.h>
void f(int a[]);
void f(int a[])//形参做为数组
{
    int b=0;
    for(b=0;b<3;b++)
    {
        a[b]=b;
        printf("%d",a[b]);
    }
}
int main(void)
{
    int a[3];//为什么改为int a=3;时会是错误
    f(a);//为什么不可以把整个数组做为实参,如f(a[3]);
    return 0;
}
2013-03-10 13:44
pauljames
Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19
等 级:千里冰封
威 望:9
帖 子:1555
专家分:10000
注 册:2011-5-8
收藏
得分:0 
a[3]不是合法的数组元素,只有a[0],a[1]和a[2];
整个数组复制一份进去太浪费空间了吧,也太没效率了

经常不在线不能及时回复短消息,如有c/单片机/运动控制/数据采集等方面的项目难题可加qq1921826084。
2013-03-10 16:03
qunxingw
Rank: 16Rank: 16Rank: 16Rank: 16
等 级:贵宾
威 望:24
帖 子:1676
专家分:7295
注 册:2011-6-30
收藏
得分:10 
int a[3] 这是定义了一个含有3个元素的数组;
如果赋值给a[3]就不行了,因为这是此数组中的第4个元素了。
要分清a[3]不同情况下的意义。

www.qunxingw.wang
2013-03-10 16:18
tompobing
Rank: 8Rank: 8
等 级:蝙蝠侠
帖 子:260
专家分:809
注 册:2012-12-9
收藏
得分:10 
数组就是指针,你可以把函数定义成void  f(int* a);
f(a)中a是实参,a是数组a的首地址,传的是地址,楼主说把实参改为a[3]那是传的一个数并不是地址;如果想传a[3]的话,函数定义应是void f(int a)
2013-03-10 22:23
快速回复:形参是数组的问题
数据加载中...
 
   



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

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