说起指针类型,我最直接的理解就是指针类型说明了把指向的数据做何解释。在指针做加减运算的时候,指针类型还决定了增加的步长值,比如:
datatype *p; p + n 实际上是p + sizeof(datatype)
这个道理估计学过C语言的人都知道,不过在工作中还是比较容易忽略掉。前几天就犯了这么个错误,要把一幅照片发送出去,照片的内容已经在缓冲里,每次发送一部分,由一个指针变量记录发送的偏移值,结果每次发送过去的图片最后都是分成几个不相连的段,最后是一片黑色。最后才发现是指针的类型不对,尽管表面上看是加了要加的量,实际类型的不同导致每次做加法都超过了真正应该增加的量。以后使用指针,对其类型要多加注意。