设为首页 加入收藏

TOP

C语言数组参数与指针参数
2012-11-05 11:36:38 来源: 作者: 【 】 浏览:397
Tags:语言 参数 指针
我们都知道参数分为形参和实参。形参是指声明或定义函数时的参数,而实参是在调用函数时主调函数传递过来的实际值。

一、一维数组参数

1、能否向函数传递一个数组?看例子:
void fun(char a[10])
{
   char c = a[3];
}
intmain()
{
   char b[10] = “abcdefg”;
   fun(b[10]);
   return 0;
}
先看上面的调用,fun(b[10]);将b[10]这个数组传递到fun 函数。但这样正确吗?b[10]是代表一个数组吗?

显然不是,我们知道b[0]代表是数组的一个元素,那b[10]又何尝不是呢?只不过这里数组越界了,这个b[10]并不存在。但在编译阶段,编译器并不会真正计算b[10]的地址并取值,所以在编译的时候编译器并不认为这样有错误。虽然没有错误,但是编译器仍然给出了两个警告:
   warning C4047: 'function' : 'char *' differs in levels of indirection from 'char '
   warning C4024: 'fun' : different types for formal and actual parameter 1
这是什么意思呢?这两个警告告诉我们,函数参数需要的是一个char*类型的参数,而实际参数为char 类型,不匹配。虽然编译器没有给出错误,但是这样运行肯定会有问题。如图:
】【打印繁体】【投稿】【收藏】 【推荐】【举报】【评论】 【关闭】 【返回顶部
分享到: 
上一篇C语言函数指针 下一篇C语言多维数组与多级指针

评论

帐  号: 密码: (新用户注册)
验 证 码:
表  情:
内  容: