c++ - 如何使用指向指针的指针

标签 c++ c pointers

指向 C 中的指针的用途是什么?以及何时使用? 因为我经常看到这样的事情 const char *foo(char **foo); 但是当我做这样的事情时:

#include <stdio.h>
char *foo(char **foo)
{
printf("b : %s \n ", foo);
*foo = "World";
printf(" c %s \n ", foo);
}

main()
{
static char *test = "Hello";
foo(&test);
printf("a : %s \n ", test);
} 

它编译得很好,但是 b 和 c 都被损坏了,并且 a 永远不会改变。 请帮助我,我做错了什么?

最佳答案

指向指针的指针是多重间接寻址或指针链的一种形式。通常,指针包含变量的地址。当我们定义一个指向指针的指针时,第一个指针包含第二个指针的地址,第二个指针指向包含实际值的位置。

http://www.tutorialspoint.com/cprogramming/c_pointer_to_pointer.htm

关于c++ - 如何使用指向指针的指针,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24711116/

相关文章:

c++ - 为什么模板函数中的strcmp()返回不同的值?

C 预处理器 + 和 = 用法

计算陈述的真值

c - 使用 SDL_strdup 和类似工具获取文件名时出现问题

c++ - SmartPTR实现heap->isValid断言

c - 访问结构指针的成员时取消引用指向不完整类型的指针

c++ - 我应该使用公共(public)指针吗?

c++ - 我怎样才能安全地(轻松地)计算程序中某个类的*所有*实例?

c++ - 重载在基类非虚函数中使用的虚函数

c++ - 尝试调用方法: request for a member which is of a non-class type时出错