0

基本上我有一系列单词

 void print(char *str) {
 cout << str <<endl;
 }

 int main() {
 int i =0;
 char* name[] = {"Fred", "John", "Jimmy"};
 print(*name[0]);
 }

我只想将第一个单词传递给一个函数,但是当我以我现在正在做的方式做事时,它会传递所有的名字。

4

2 回答 2

4

你有一个额外的取消引用,代码应该是这样的:

print(name[0]);

理想情况下,您的print函数应该采用const char*,因为它不会修改传入的字符串。

于 2012-12-07T18:08:28.570 回答
1

char* name[]是一个指向 char 的指针数组,通常是字符串。

void print(char *str)需要一个指向 char 的指针作为参数。

通过调用print(*name[0]),您实际上是从 name[] 数组中获取第一个指针,并将其取消引用以将其转换为单个字符。由于您的函数需要一个指向 char 的指针,因此您只需调用它print(name[0])即可获得数组中的第一项。

于 2012-12-07T18:12:09.927 回答