就编译器而言,以下声明是相同的:
int* x; // alternative [1]
int *x; // alternative [2]
选择[1]or是正在进行的宗教战争[2]的风格、偏好和主题的问题。
当您说int* xorint *x时,您已经声明该变量x将存储一个指向整数的指针。您可以稍后传递该指针,如下所示:
int* x;
x = new int;
或立即,如:
int* x = new int;
请注意,如果我在任何一种情况下都写,这都无关紧要int *x。唉,即使int * x是有效的。
有人说您应该更喜欢这种表示法T *x,因为您可以将其读取为*x is a T(而不是将其读取为 (x是指向 ) 的指针T)。其他人更喜欢这种表示法T* x,因为它似乎强调了 x 是类型的事实T*(换句话说,指向 的指针T)。
有人会说该符号T* x可以帮助您避免以下错误:
T *x, y, z; // (x is a pointer to T, but y and z are NOT pointers to T; confusing)
相比之下
T* x, y, z; // (x, y, and z are all pointers to T.
因此,选择您喜欢的符号。但是,出于您的问题的目的,请保留以下问题:当您说T* x您只是说那x是 type 时pointer to T。