gpt4 book ai didi

c - 指针的好处?

转载 作者:太空狗 更新时间:2023-10-29 16:30:31 26 4
gpt4 key购买 nike

我最近对 ​​C 编程产生了兴趣,所以我买了一本书 (K&R) 并开始学习。

来自大学的 Java 类(class)(基础),指针是一个全新的章节,根据我在网上阅读的内容,这是一个相当难以理解的概念。在进入指针章节之前,我的印象是指针是 C 的主要部分并且提供了很多好处。

阅读本章并对什么是指针及其工作原理有了基本了解后,对我来说好处并不明显。

例如(如果我完全错了,请纠正我)在 K&R 书中的指针介绍中说,由于我们按值调用,因此在函数调用中传递变量时,我们几乎传递了函数要处理的变量,因此函数不能对原始变量做任何事情,我们可以用指针来克服这个问题。

在后面使用 char 指针的例子中,书上说增加 char 指针是合法的,因为函数有指针的私有(private)副本。 “私有(private)副本”不是使用指针的理由吗?

我想我对指针的整个使用有点困惑。例如,如果被问到我可以使用指针而不是使用数组下标,但我怀疑这是指针的主要用途。

Linux 和开源编程是我进入 C 的主要原因。我得到了一个 C 项目的源代码来研究 (Geany IDE),我可以看到整个源代码都使用了指针。

我还在论坛中做了一些搜索,发现了一些有类似问题的帖子。答案是(我引用):

If you don't know when you should use pointers just don't use them.

It will become apparent when you need to use them, every situation is different.

暂时避免使用指针并仅在特定情况下使用它们(指针的需求很明显?)对我来说是否安全?

最佳答案

指针的一个好处是当你在函数参数中使用它们时,你不需要复制大块内存,你也可以通过取消引用指针来改变状态。

例如,您可能有一个巨大的struct MyStruct,并且您有一个函数a()

void a (struct MyStruct* b) {
// You didn't copy the whole `b` around, just passed a pointer.
}

关于c - 指针的好处?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4480871/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com