| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 404 人关注过本帖
标题:为什么此处把 a 改成 a[0],程序报错
只看楼主 加入收藏
stoneshing
Rank: 1
等 级:新手上路
帖 子:15
专家分:0
注 册:2014-8-18
结帖率:100%
收藏
 问题点数:0 回复次数:9 
为什么此处把 a 改成 a[0],程序报错
如下:谢谢各位


#include<stdio.h>

void f(int vx[],int a,int b)
{
    int i;
    for (i=0;i<a;i++)
        vx[i]=b;
}
int main ()
{
    int a[]={1,2,3,4,5};
    int i;
    f(a[0],5,1);//-----------为什么此处把a改成a[0],程序报错
    for (i=0;i<5;i++)
    printf("a[%d]=%d\n",i,a[i]);
    return 0;
}
2014-09-04 15:29
funyh250
Rank: 10Rank: 10Rank: 10
等 级:贵宾
威 望:26
帖 子:290
专家分:1573
注 册:2013-12-25
收藏
得分:0 
参数要求是数组类型的,a[0]不符合

学习是大事   吃喝拉撒睡是小事   其他的那都不是事
2014-09-04 15:33
Coincedence4
Rank: 3Rank: 3
等 级:论坛游侠
帖 子:52
专家分:151
注 册:2014-9-4
收藏
得分:0 
数组做形参传的是首地址,数组名就是首地址。改成a[0]就不是首地址了,就是一个数了
2014-09-04 15:39
stoneshing
Rank: 1
等 级:新手上路
帖 子:15
专家分:0
注 册:2014-8-18
收藏
得分:0 
回复 2 楼 funyh250
谢谢, 我试了下,加个& ,就可以了,是不是说明,vx[]从本质上就是一个也是就是一地址?
2014-09-04 15:41
书生等待
Rank: 7Rank: 7Rank: 7
等 级:黑侠
威 望:8
帖 子:280
专家分:689
注 册:2013-2-22
收藏
得分:0 
图片附件: 游客没有浏览图片的权限,请 登录注册
2014-09-04 16:05
wp231957
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
来 自:神界
等 级:贵宾
威 望:423
帖 子:13688
专家分:53332
注 册:2012-10-18
收藏
得分:0 
a 是一个指针  a[0]是一个具体的数值

DO IT YOURSELF !
2014-09-04 16:19
stoneshing
Rank: 1
等 级:新手上路
帖 子:15
专家分:0
注 册:2014-8-18
收藏
得分:0 
哈哈,谢谢,引来这么多大神大牛。。。
2014-09-04 16:31
stoneshing
Rank: 1
等 级:新手上路
帖 子:15
专家分:0
注 册:2014-8-18
收藏
得分:0 
回复 3 楼 Coincedence4
THANKS.
2014-09-04 16:32
erty1001
Rank: 9Rank: 9Rank: 9
等 级:蜘蛛侠
威 望:4
帖 子:331
专家分:1433
注 册:2014-8-31
收藏
得分:0 
对于新手一定多读书 多注意变成细节
对于数组来说
T a[133];
a[0] 表示一个变量
a表示数组首地址
&a[0]也表示首地址;
在处理 函数参数或者是函数返回值的时候 地址和变量一定要分清楚
2014-09-04 18:51
随风而行lulu
Rank: 2
等 级:论坛游民
帖 子:59
专家分:60
注 册:2014-9-6
收藏
得分:0 
这。很多书里都有讲的啊,回去看看吧,实参和形参类型不一致
2014-09-08 23:20
快速回复:为什么此处把 a 改成 a[0],程序报错
数据加载中...
 
   



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

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