【发布时间】:2014-01-06 01:00:40
【问题描述】:
我一直在尝试理解 C 中结构的使用,以便更好地理解一般的编程概念,结构让我有些困惑;学习语法很容易,但很难确定为什么以及何时使用它们,我直截了当地相信结构只是 C 编程语言中的另一种工具,因为看起来你可以完成任何你想要的事情而不必真的使用结构。再说一次,这是我目前的想法,因为我还没有完全理解它们。
除了使用结构创建唯一的数据类型之外,结构和哈希/字典之间还有什么区别?
选择结构的主要好处是什么?
将结构视为散列或字典是否有意义?
再次,我只是想更好地理解 C 中的结构概念。
谢谢
【问题讨论】:
-
请选择一种语言来询问,C 或 C++。它们是不同的语言,结构也不同。在 C 中,它们只是数据。在 C++ 中,它们可能具有活动组件(方法)和更复杂的语义。如果您需要询问两种语言,请使用单独的问题。决定后,请删除其他标签并编辑问题以指定语言。
-
认为某些功能没有用在新学习者中很常见。我听一些朋友说 OOP 没用,或者设计模式没用,甚至指针和回调也没用。如果你这么想,是因为你还没有克服任何规模足够大的编程问题。请记住,任何流行的编程语言中的每个功能都有其意义,因为它们的创造者不是白痴,相反,他们是天才。
-
@Eric Postpischil:没有理由仅仅因为您一次看到这两个标签就强制说“C 不是 C++”。结构和类的概念在 C 和 C++ 中是相似的。对于思考如何用其他语言完成 OOP 的人来说,这是一个很好的问题。虽然结构的字段(读作:类)在编译时是已知的,但 hashmap 的键不是,这使得它类似于 Python 等语言中的类。其实,我喜欢这个问题。这是一个已经知道一种语言并将新语言与她已经熟悉的语言进行比较的人的问题。
-
@EricPostpischil:是的,它们是不同的,毫无疑问。但基本思想是相同的(与 Python 等语言中类的实现方式相反)。 C 和 C++ 结构之间的区别实际上是语法糖。这不是关于编程风格、习语或任何类似的问题;这是一个关于 C/C++ 结构如何与哈希图相似的问题。 C 和 C++ 之间的差异在这里根本不重要!
-
@EricPostpischil:正在考虑这个问题的人可能会对这里给出的答案感兴趣,无论他们是想编写 C 代码还是 C++ 代码。
标签: c++ c dictionary hash struct