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