指针操作技巧
1 运算时一定要先把地址存入指向单字节指针中,这样指针运算时的+1才是加上一个地址
2要取单字节就将地址存入指向单字节指针中,要取四字节就将地址存入指向四字节的指针中,之后用指针[0]输出即可
3 指针的感觉:
一级指针 | 存了变量 &结构体的地址 |
OnePoint | 输出变量&结构体的地址 |
OnePoint->Var | 输出结构体变量的某个成员 |
OnePoint[5] | 输出变量数组中的第5个变量 |
OnePoint[5].Var | 输出结构体数组中的第5个结构体的Var成员 |
二级指针 | 存了指针变量的地址 |
TwoPoint | 输出指针变量的地址 |
TwoPoint[5] | 输出指针变量数组中的第5个指针变量 |
TwoPoint[5]->Var | 输出指针变量数组中的第5个指针变量指向的结构体的Var成员 |
4一看到,就想到:
int **point:想到该变量保存的是一个指针的地址
int *point:想到该变量保存的是一个变量的地址
*point:想到对ponint保存的地址所指向的存储单元进行输出&赋值操作
NodeData->LostNext->Buffer:NodeData&LostNext存的都是一个地址,这个地址隶属于指针&结构体的首地址
在例子A和B中,因为majorfunction是个数组,而t不是数组,所以二者加了[ ]的效果不同。