A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 15342193033 中级黑马   /  2014-12-26 15:34  /  1124 人查看  /  7 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

# include<stdio.h>
void main()
{
  char HanShu(char *a[]);
        char str[10] = {0};
        //就是想调用函数,但老出错,显示:C:\c\x.cpp(8) : error C2664: 'HanShu' : cannot convert parameter 1 from 'char [10]' to 'char *[]'
         int a = HanShu(str);
}
char HanShu(char *a[])
{
int a = 10;
return 10;
}

7 个回复

倒序浏览
没有提前声明,
回复 使用道具 举报
没有提前声明
回复 使用道具 举报
:o,main函数里第一句并不就是声明吗?char HanShu(char *a[]);
跟声明有关系吗?要是没声明的话,显示的错误应该是说:这个函数没定义吧!!
回复 使用道具 举报
参数名和定义的变量名重复了吧估计 这个int a和char *a[]什么关系呢,如果是想修改首元素,*a = 10;
回复 使用道具 举报
从今以后 发表于 2014-12-26 17:39
参数名和定义的变量名重复了吧估计 这个int a和char *a[]什么关系呢,如果是想修改首元素,*a = 10; ...

看错一个, 参数写的char *a[],是**类型,而传递的是数组名,是*,不匹配也。
回复 使用道具 举报
什么意思啊,求详解啊/**类型??是什么
回复 使用道具 举报
15342193033 发表于 2014-12-26 21:28
什么意思啊,求详解啊/**类型??是什么

**是指向指针的指针,二级指针。char HanShu(char a[])改成这样,另外函数内部int a变量名和形参重名也不可以的,如果你的意思是想修改数组首元素,应该是*a = 10;
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马