3

配列をポインターに割り当てることについての私の理解は、ポインターが配列の最初のインデックスを指しているため、ポインターを出力するときに、配列の最初のインデックスのアドレスを出力する必要があるということですが、この場合はどうすればcoutは配列全体の値を出力しましたか? 最初のインデックスのアドレスが必要であることを明示的に示したにもかかわらず

char foo[] = {'A','B','C','\0'};
char* p = foo;
char* q = &(foo[0]);
cout <<"from p:  " << p << endl;
cout << "from q: " <<  q << " " << &(foo[0]) <<  endl;

//output
from p:  ABC
from q: ABC ABC

2 番目の質問は、これら 2 つの行の違いは、1 つは char へのポインターの配列であり、もう 1 つは char 配列へのポインターであるということです。それは正しいですか? 括弧は必要ですか?

 char* bar1[4];
 char (*bar2)[4] = &foo;
 cout << "address of foo is  " << bar2  << endl;
 //output
 address of foo is  0x7fff192f88b0

foo 配列のアドレスはAのアドレスと同じでなければなりませんよね?A の住所を印刷するにはどうすればよいですか? 私はそうしなかったので。どうもありがとうございました

4

1 に答える 1