一个典型的场景就是用函数修改变量的值:
int exchange(int *x, int *y)
{
int temp = *x;
*x = *y;
*y = temp;
}
int main()
{
int a = 1;
int b = 2;
exchange(&a, &b);
printf("a = %d, b = %d", a, b);
}
这里定义的exchange函数必须要用指针作为参数,也就是修改目标的本身,而不是修改他们的复制
两种情况:
1)当需要动态分配内存时,需要用指针去引用(指向)新分配的内存(地址),比如动态长度的数组。
2)你传递一个变量给函数,希望通过函数改变这个变量的值时,需要用指针。
需要操作内存时 一般用指针。 内存的寻址 需要使用指针。
这个看需求,功能的实现也可以避免使用指针,比如多功能存在共同特性的时间窗空监测,但是由于功能的不同,时间限值、保护阈值都不同,那就可以使用指针的形式完成模块函数的封装。内存的申请等待也都是应用场景,当然,非必要不使用指针,具体看应用场景与行业要求