基本上我有一系列单词
void print(char *str) {
cout << str <<endl;
}
int main() {
int i =0;
char* name[] = {"Fred", "John", "Jimmy"};
print(*name[0]);
}
我只想将第一个单词传递给一个函数,但是当我以我现在正在做的方式做事时,它会传递所有的名字。
你有一个额外的取消引用,代码应该是这样的:
print(name[0]);
理想情况下,您的print
函数应该采用const char*
,因为它不会修改传入的字符串。
char* name[]
是一个指向 char 的指针数组,通常是字符串。
void print(char *str)
需要一个指向 char 的指针作为参数。
通过调用print(*name[0])
,您实际上是从 name[] 数组中获取第一个指针,并将其取消引用以将其转换为单个字符。由于您的函数需要一个指向 char 的指针,因此您只需调用它print(name[0])
即可获得数组中的第一项。