只将char数组的第一个元素传递给函数c ++

时间:2012-12-07 18:07:07

标签: c string chars

基本上我有一系列单词

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

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

我想只将第一个单词传递给一个函数,但是当我正在按照我正在做的方式进行操作时,它会传递所有名称。

2 个答案:

答案 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])来调用它,你将获得数组中的第一项。