但在指针的内容里面,还有一个知识点叫做:指针指向对象的类型。比如,在int *a中,指针指向对象的指针类型是int。它描述了指针指向的那个对象的类型。那么我举一个比较难的例子。int (*a)[10]中,变量名是什么?变量的类型是什么?指针指向对象的类型又是什么?按照上面我说的那个方法,变量名是a,变量的类型是除了变量名之外的内容,就是int (*)[10],那指针指向对象的类型是什么嘞?是int [10]。这里也有一个规律,那就是除了*变量名之外的的内容,就是指向对象的类型。 而在赋值的时候,比如:int a=10; int *b;我们是不能这样赋值的:b=a;这样是完全错误的,a是一个数值,而b是一个指针,指针指向一个地址,我们不能把值10赋给一个地址。因此我们如果要赋值只能这样做:b=&a。把a取地址就可以赋值给指针了。 同时,在赋值的时候还有一个非常重要的知识点。比如,int *a;char b;我们这时候不能这样赋值:a=&b;因为他们的类型不匹配,只有当b的类型是int型时,才能取地址赋给相同类型的指针a。 平时我们会经常看到一个高大上的说法:比如指针变量a指向了b变量。其实这句话的涵义就是指针变量a存储了变量b的地址。即指针变量指向谁,就存储了谁的地址。这样就好理解很多了吧。 相信通过这次举的一些例子,大家对这几个知识点有个比较清晰的认识了,以后遇到这类问题,不要看错了哦。
|