0

次のコードがあります。

const char* names = {"apples", "oranges", "grapes"};

とはどのようなデータ型&name[0]ですか? GCCは文句を言っています。GCCがこれについて不平を言っているので、これは const char** ではありません:

const char** address_of_first_name = &name[0];

"note: expected 'const char ** ' but argument is of type 'char **' "

それはconstchar * const ですか?頭痛が進行中...

とはどのようなデータ型&name[0]ですか? このコンパイラ エラーを間違って修正したくありません。

4

3 に答える 3

4

namesポインターの配列を作成const char* names[]し、それらを初期化すると、次のことができます。

#include <stdio.h>

int main()
{
   const char* names[] = {"apples", "oranges", "grapes"};

   const char* first = names[0];
   const char* second = names[1];
   const char* third = names[2];

   const char* foo = &(*names[0]);

   printf("%s", foo);
   printf("%s", second);
   printf("%s", third);

}

実際の例

アドレスが必要な場合は、次のようにします。

 const char* addr = &(*names[0]); //print addr gets "apples"
 const char** add = &names[0]; //print add gets 0x7fff14531990
于 2013-04-03T07:42:52.187 に答える
2

質問には欠陥があります。

const char* names = {"apples", "oranges", "grapes"};

const char*スカラーを配列であるかのように初期化します。

于 2013-04-03T07:42:59.663 に答える