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 に変換しています。関数には char へのポインターが必要なので、それを呼び出すだけprint(name[0])で、配列の最初の項目を取得できます。

于 2012-12-07T18:12:09.927 に答える