黑马程序员技术交流社区

标题: 关于形参是指针还是数组的问题,请教一下各位大神~ [打印本页]

作者: 彈指っ紅顏老    时间: 2014-11-22 14:12
标题: 关于形参是指针还是数组的问题,请教一下各位大神~
昨天做了一下练习题“编写一个函数void strlink(char s[], char t[])将字符串t连接到字符串s的尾部”,函数中形参用了字符数组s[]和t[],实参也是两个数组。我忽然想到了之前做得一个习题“求一个数组中得最大值”,其中函数里也是将形参定义为一个数组,实参也是一个数组,但是系统发出警告让把形参的数组改为指针,这个问题有同学在我们论坛提出来过……那么问题来了,实参同样是数组,那什么情况下形参应该是指针,什么情况下形参是数组而且不报警呢?
作者: doudou33420    时间: 2014-11-22 14:30
没听懂啊哥们,,  实参是数组 形参是数组, 传过去不会有警告啊  我刚试了
作者: 杨贺阳    时间: 2014-11-22 15:14
楼主你好,我也是新手。
你这样提问有些不准确,没有例子不好讨论。
我大概理解楼主的意思,解答如下:
形参是数组的时候不会报警,但是sizeof(数组名)就会报警,因为数组 当做形参的时候,会把数组当做指针变量来使用,指针变量的长度在32位编译器 和64位编译器上是不同的,所以,当你sizeof()的时候,会报警,提醒你这样做是不准确的。
作者: 彈指っ紅顏老    时间: 2014-11-24 00:18
杨贺阳 发表于 2014-11-22 15:14
楼主你好,我也是新手。
你这样提问有些不准确,没有例子不好讨论。
我大概理解楼主的意思,解答如下:

明白了!非常感谢!




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2