3

C ++では、この形式はこれとint *p意味的に異なりint* pますか?それとも、これは明らかにスタイルの問題ですか?

さて、この質問はばかげているかもしれませんが、両方のスタイルが同時に使用されているのを見たことがあるので、これらのフォーム間には異なるセマンティクスがあるのではないかと思いました。

4

3 に答える 3

6

それらは同じです。

それは時々トリッキーです

int* a, b;

1つのポインタと1つのintを定義します。このスタイルはそれをより明確にします:

int *a, b;
于 2012-11-27T10:04:13.770 に答える
4

それは同じ意味論的意味を持っています。キーワードを使用している場合constは、次の注意事項に注意してください。

int * conts p;- int に対する const ポインター

int const * p;- const int への非 const ポインター。

于 2012-11-27T10:05:13.007 に答える
2

他の人が言ったように、彼らは同じです。

1 つのポインターと 1 つの整数を宣言するという事実int* a, b;は、別の方法でも現れる疣贅の 1 つの側面です。例えば:

int* a, f(double), c[42];

intは、 calledへのポインタ、を受け取り、 calledを返すa関数、および 42の配列called を宣言します。これは、これらの「装飾」 ( 、、 ) のすべてが宣言子と呼ばれる C++ 文法の一部を形成するためです。宣言子は、ステートメント全体 (文法では宣言と呼ばれます) ではなく、個々の名前に関連付けられています。doubleintfintc*()[]

于 2012-11-27T10:12:21.420 に答える