代码之家  ›  专栏  ›  技术社区  ›  Satish

C/C++中的指针帮助[关闭]

  •  2
  • Satish  · 技术社区  · 15 年前

    我想知道C和C++中的指针——它有助于节省内存吗?我搜索了一下,但没有得到满意的答复。请帮帮我。

    4 回复  |  直到 15 年前
        1
  •  4
  •   Florian    15 年前

    如果比较以下两段代码:

    foo() {
        large_struct x;
        bar(x);
    }
    bar(large_struct x) {
        //do some funny things
    }
    

    foo() {
        large_struct* x;
        bar(x);
    }
    bar(large_struct* x) {
        //do some funny things
    }
    

    在第一个片段中,大型结构X在内存中被复制,而在第二个片段中,只有一个指针在内存中被复制。这就是点,当您可以用指针保存内存时。

        2
  •  2
  •   TheEmirOfGroofunkistan    15 年前

    不知道你到底想要什么,但是…存储指针比存储它指向的对象的整个副本占用的内存要少。

        3
  •  1
  •   David X    15 年前

    除了别人说的以外,指针 必要的 对于动态内存分配(这也适用于更高级别的语言,但通常是抽象的)。这意味着,如果没有指针,您只能使用(通常相当小的)堆栈内存,这更需要保护。

        4
  •  0
  •   Orochi    15 年前

    指针主要用于指向内存中的一个位置。指针类型是指它指向的内存类型(通常),例如:char*(字符指针指向包含字符的内存),而且这种指针类型与指针算术有很大关系,例如:如果向指针名称中添加一个整数,地址将跳转多少字节。

    在C++中,您可以通过使用新操作符在运行时从系统中请求内存。这种类型的内存称为动态内存,应该显式删除。指针表示法用于指向使用“new”运算符分配的此类内存。例如:

    char * a = new char; 
    

    char * a = new char[10]
    

    这样的内存必须使用delete关键字删除或返回到系统 例如:

    delete a;
    

    delete [] a;
    

    它被看作是从我们的鹿C++程序员的实践中,他们往往忘记删除这种声称的记忆,因此管理语言应运而生。最流行的是Java、C语言和管理C++(C++CLI)。

    (看来,我可以写一篇关于指针是什么的完整文章,但我试图指向你的问题)。

    希望你对我的回答满意。 我希望这有帮助