首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >将字符数组传递给函数

将字符数组传递给函数
EN

Stack Overflow用户
提问于 2012-04-30 20:21:01
回答 9查看 70.4K关注 0票数 12

如何将字符数组传递给函数。

声明

代码语言:javascript
复制
char fromName[64];
char fromStreet[64];
char fromSuburb[64];
char fromCountry[64];

函数调用

代码语言:javascript
复制
    Trans[i]->putAddress(fromName, fromStreet, fromSuburb, fromCountry);

原型

代码语言:javascript
复制
void putAddress(char,char,char,char);

function    
void putAddress(char fName,char fStreet,char fSuburb,char fCountry){

        return;
}

和错误"main.cpp",第86行:错误:在对Mail::putAddress( char,char)的调用中,类型为char的形参1正在传递char*。

EN

回答 9

Stack Overflow用户

回答已采纳

发布于 2012-04-30 20:22:56

你的函数应该是:

代码语言:javascript
复制
void putAddress(char *,char *,char *,char *);
票数 9
EN

Stack Overflow用户

发布于 2012-04-30 20:23:21

您需要将指针传递给char

代码语言:javascript
复制
void putAddress(char* fName,char* fStreet,char* fSuburb,char* fCountry);

然后你需要小心知道每个数组的大小,这样你就不会在末尾建立索引,在你的例子中所有的数组都是64。

票数 9
EN

Stack Overflow用户

发布于 2012-04-30 20:25:38

您可以通过两种方式传递数组:

(1)传统的C风格:

在这里,您使用指针传递地址和接收

代码语言:javascript
复制
void putAddress(char *,char *,char *,char *);

(2) C++引用传递:

通过引用指定大小来传递数组:

代码语言:javascript
复制
 void putAddress(char (&a1)[64], char (&a2)[64],char (&a3)[64], char (&a4)[64]);

这有助于您立即获得正确的数组大小(不允许使用指针)。也可以使用template使其更加复杂。

您还可以迭代使用std::string,这将创建整个数组的副本,并将其作为自动变量进行管理。

票数 8
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/10383615

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档