-1

次の 2 つの宣言の間で混乱しています。

int *p=&a; //first

int *p; //second
p=&a;

アスタリスク*は逆参照演算子として機能していません。*逆参照演算子として機能する私が見た場所のほとんど。私の質問は、最初のケースとは別に、*演算子が逆参照演算子として機能しない場合はありますか?

4

4 に答える 4

2

*式内でのみ逆参照演算子として機能します。

C 宣言の (確かに奇妙な) 構文は、「宣言は使用に従う」という考えに基づいています。したがって、これらの宣言:

int i;
int *p;

i「であるint」および「である」と*p読むことができますint*pは であるためint、 は へpのポインタでなければなりませんint

(もちろん*、オペランドが 2 つある場合は、乗算演算子でもあります。)

于 2013-08-29T19:09:44.777 に答える