这些示例如何:
int* test;
int *test;
int * test;
int* test,test2;
int *test,test2;
int * test,test2;
前三个案例都在做同样的事情:Test不是一个int,而是一个指向int的指针。
第二组,在情况4中,test和test2都是指向int的指针,而在情况5中,只有test是一个指针,而test2是"真实" int。 情况6呢? 与情况5相同?
4、5和6是同一件事,只是测试是一个指针。如果要两个指针,则应使用:
int *test, *test2;
或者,甚至更好(使一切清晰):
int* test;
int* test2;
星号周围的空白不重要。这三个意思相同:
int* test;
int *test;
int * test;
喜欢哪种样式都没有关系,并且每种有不同的解释方式, 第一种,test 是int* 类型的,一个int 指针 第二种,*test 是int 类型的,指针指向的是int 类型
" int *var1, var2" 是一种邪恶的语法,使人感到困惑,应避免使用。它扩展为:
int *var1;
int var2;
有用的是向后读取声明。
int* test;
当开始声明const指针时,要弄清是指针是const还是指针所指向的东西是const变得很棘手。
int* const test;
int const * test;
const int * test;
附加:
c++指针、*符号与&符号的意思
&a:存a的值的地方 *a:指向某个地址
*p=&a 指针p现在指向存a的值的地址 因此p的值=a的值 但是&p不等于&a,存p的值的地方是另一个地址
|