C++ 星号指针定义

来源:互联网 发布:广东网络干部培训学院 编辑:程序博客网 时间:2024/06/05 00:09
对象的声明由修饰符(specifier)、声明符(declarator)两者组成。修饰符包括对象的类型等。声明符包括指定对象的名字、改变修饰符规定的对象类型(如*)。注意,声明符只是作用于单个对象上。


举个例子:int *i, j, k();

修饰符int表明i,j,k的类型都是整型,而声明符*修改了i的类型,变成了int *。同样的,声明符()修改了k的类型,表明k是一个函数,其返回值是int。


修饰符中的类型只是包括简单内置类型(int, bool, float, etc)、结构体、类等,并不包括指针。指针类型在C++语言中属于复合类型。

根据以上的语言规则,类型(int)覆盖整个声明语句,而声明符(*)只覆盖单个对象,自然,i,j,k都是三个互不相同的类型了。

当然,int *p1=static_cast<int *>(p2); 也不会有什么问题,cast只要求是个类型就行,不区分是不是复合类型。


http://bbs.csdn.net/topics/390277565