指针中所存取的值是它所指向变量的地址,所占用的空间是一定的。那么为什么不给指针直接定义一个属于它自己的类型,而是要写出它所指向的变量的类型呢?
这是因为我们对于指针的操作不止是取地址符,还有对指针使用加法。当对指针加1时,指针会指向这个变量紧邻的空间的地址,这个时候就需要知道指针所指向的变量所占用的空间大小了。
例如:
int *ptr;
char *qtr;
ptr++;
qtr++;
cout<<ptr<<endl;
cout<<qtr<<endl;
这个时候当对ptr++时,就是跨过整型变量所占用的字节大小,即4个字节;对qtr++时,就是跨过字符变量所占用的字节大小,即2个字节。