关于网友提出的“ 怎么向子函数传递数组啊”问题疑问,本网通过在网上对“ 怎么向子函数传递数组啊”有关的相关答案进行了整理,供用户进行参考,详细问题解答如下:
问题: 怎么向子函数传递数组啊
描述: main(){
char str[60];
f1(str);
}
void f1(char str[]){
char str1[60];
str1[60]=str[60];
}
比如这样的 貌似要用指针。。。书上也没找到-。-
解决方案1: 传递数组有两种方法:
1、传递指针,也就是指向数组第一个元素的指针,如果需要操作数组长度的话可再多传一个int型来记录数组长度。
2、传递数组的const引用,代码如下:
void f1(const char (&str)[60])
这个地方长度必须给定。与形参使用char str[]所不同的地方是,当传递实参的时候,函数会进行数组的长度匹配。而你写的那个声明并不会进行长度匹配,编译期无法检测出数组越界的错误,有可能会给程序带来严重的问题。
解决方案2: 数组在内存中是一块连续的区域。所以想传递数组时,只要传递首地址也就是数组名称即可,例如本例中的str,就代表这一块区域的首地址,然后在函数体内部直接操作地址就可以达到你要的效果。另外,str[60]越界了,数组下标从0开始的,最大是59.数组的整体拷贝需要用strcpy等函数,或者for循环等。
以上介绍了“ 怎么向子函数传递数组啊”的问题解答,希望对有需要的网友有所帮助。
本文网址链接:http://www.codes51.com/itwd/2201384.html