C ++では、この形式はこれとint *p
意味的に異なりint* p
ますか?それとも、これは明らかにスタイルの問題ですか?
さて、この質問はばかげているかもしれませんが、両方のスタイルが同時に使用されているのを見たことがあるので、これらのフォーム間には異なるセマンティクスがあるのではないかと思いました。
それらは同じです。
それは時々トリッキーです
int* a, b;
1つのポインタと1つのintを定義します。このスタイルはそれをより明確にします:
int *a, b;
それは同じ意味論的意味を持っています。キーワードを使用している場合const
は、次の注意事項に注意してください。
int * conts p;
- int に対する const ポインター
int const * p;
- const int への非 const ポインター。
他の人が言ったように、彼らは同じです。
1 つのポインターと 1 つの整数を宣言するという事実int* a, b;
は、別の方法でも現れる疣贅の 1 つの側面です。例えば:
int* a, f(double), c[42];
int
は、 calledへのポインタ、を受け取り、 calledを返すa
関数、および 42の配列called を宣言します。これは、これらの「装飾」 ( 、、 ) のすべてが宣言子と呼ばれる C++ 文法の一部を形成するためです。宣言子は、ステートメント全体 (文法では宣言と呼ばれます) ではなく、個々の名前に関連付けられています。double
int
f
int
c
*
()
[]