存储指针地址需要什么? int a = 2; int *p = &a; int **q = &p;有实际用途吗?实时应用。
3 回答
函数式编程
TA贡献1807条经验 获得超9个赞
A **只是指向指针的指针。因此,其中*p包含的地址p,p**包含的地址,p*其中包含p对象的地址。
**当您要保留内存分配或分配,甚至在函数调用之外时,也可以使用。
还要检查这篇文章。
例:-
void allocate(int** p)
{
*p = (int*)malloc(sizeof(int));
}
int main()
{
int* p = NULL;
allocate(&p);
*p = 1;
free(p);
}
慕的地10843
TA贡献1785条经验 获得超8个赞
一种用途是从函数内部更改指针的值。例如:
#include <stdio.h>
void swapStrings(const char **strA, const char **strB)
{
const char *tmp = *strB;
*strB = *strA;
*strA = tmp;
}
int main()
{
const char *a;
const char *b;
a = "hello";
b = "world";
swapStrings(&a,&b);
// now b points to "hello" and a points to "world"
printf("%s\n", a);
printf("%s\n", b);
}
输出:
world
hello
- 3 回答
- 0 关注
- 441 浏览
添加回答
举报
0/150
提交
取消