首先,参数定义:
UINT *ptr; /*ptr 为一整型数据指针*/
UINT long; /*long为整型数据*/
其次,参数赋初值
ptr = 0; /*ptr指向0地址空间*/
long = 0x10;
最后,求和
ptr = ptr + long; /*此时ptr指向哪里了?*/
结果,ptr并不是指向地址为0x10的地址空间,而是指向了0+0x10*4的地址空间。
这就是指针!
以前,常使用指针的操作变量,比如用指针来操作数组、用指针作为函数形参等,这些操作的都是针对指针所指向的变量(*ptr),并没有关心指针本身(ptr),以前就知道ptr本身就是一个地址,前面加*表示引用ptr指针所指向的数据。最近有机会对ptr本身进行操作,无意间发现了ptr居然有上述特性,在编程的时候还是要特别留意才行。