当需要给地址很简单只需要一层指针即可
void give_pointer(int* point)
{
//something
}
int main(void){
int tar=1;
give_pointer(&tar);
}
果是两层或者多层则没什么问题一样的
void give_pointer2(int* point)
{
//something
}
void give_pointer(int* point)
{
give_pointer2(point);//something
}
int main(void){
int tar=1;
give_pointer(&tar);
}
如果需要泛型则使用void*
void give_pointer2(void* point)
{
//something
}
void give_pointer(void* point)
{
give_pointer2(point);//something
}
int main(void){
int tar=1;
give_pointer(&tar);
}
那么要回传参数就需要思考一下了
如果只有一层
void get_pointer(int* point)
{
*point=5;//something
}
int main(void){
int tar=1;
give_pointer(&tar);
}
如果有两层或者多层
void get_pointer(int** point)
{
*point=5;//something
}
void get_pointer(int* point)
{
get_pointer2(&point);//something
}
int main(void){
int tar=1;
give_pointer(&tar);
}
为什么使用void指针?
为了可以做包装,相当于一个抽象层,算是另一种形式的重载。
为了与上层的数据结构分离,不然还要做头文件的引用.
为什么一般最高只有二重指针。
对于一般变量而言(除了多维数组)只需要对指针指向的值修改或者修改这个指针就能满足需要。即修改变量数值用一重指针,修改变量指向的地址用二重指针。

Comments NOTHING