首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > C++ >

如何向子函数传递数组

2012-09-29 
怎么向子函数传递数组啊main(){char str[60]f1(str)}void f1(char str[]){char str1[60]str1[60]str[6

怎么向子函数传递数组啊
main(){
char str[60];
f1(str);
}


void f1(char str[]){
char str1[60];
str1[60]=str[60];
}


比如这样的 貌似要用指针。。。书上也没找到-。-

[解决办法]
数组在内存中是一块连续的区域。所以想传递数组时,只要传递首地址也就是数组名称即可,例如本例中的str,就代表这一块区域的首地址,然后在函数体内部直接操作地址就可以达到你要的效果。另外,str[60]越界了,数组下标从0开始的,最大是59.数组的整体拷贝需要用strcpy等函数,或者for循环等。
[解决办法]
传递数组有两种方法:
1、传递指针,也就是指向数组第一个元素的指针,如果需要操作数组长度的话可再多传一个int型来记录数组长度。
2、传递数组的const引用,代码如下:

C/C++ code
void f1(const char (&str)[60])
[解决办法]
探讨
传递数组有两种方法:
1、传递指针,也就是指向数组第一个元素的指针,如果需要操作数组长度的话可再多传一个int型来记录数组长度。
2、传递数组的const引用,代码如下:

C/C++ code
void f1(const char (&str)[60])


这个地方长度必须给定。与形参使用char str[]所不同的地方是,当传递实参的时候,函数会进行数组的长度匹配。而……

[解决办法]
给你写了个示例,如下:
C/C++ code
#include<iostream>using namespace std;void func(char *s){          char *str;          str=s;          cout<<str;}int main(){    char str[60]="hello";    func(str);    system("pause");    } 

热点排行