【问题标题】:What is the difference between struct node**hashTable and struct node*hashTable[MAXSIZE]?struct node**hashTable 和 struct node*hashTable[MAXSIZE] 有什么区别?
【发布时间】:2014-06-29 21:49:14
【问题描述】:

我在理解这两者之间的区别时遇到了一些麻烦。这两者都是指向指针的指针吗?另外,在哪些情况下它们都适合使用?

【问题讨论】:

    标签: c syntax


    【解决方案1】:
    struct node *hash1[MAXSIZE];
    struct node **hash2 = hash1;
    

    第一个创建一个由 MAXSIZE 元素组成的数组,但每个元素都是一个指向 struct node 的指针。

    第二个创建单个变量,一个指向指针的指针,该指针使用hash1 中第零个指针的地址进行初始化。

    您可以在函数的参数列表中使用第二种表示法,或者当您需要对整个哈希表的单个引用时。你在布局内存时使用第一个,创建一个可以稍后修改的哈希表。

    【讨论】:

      【解决方案2】:

      第一个是指向struct node的指针,第二个是MAXSIZE指向struct node的指针的数组。

      使用 C 运算符优先规则来解开类型。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2011-11-14
        • 1970-01-01
        • 1970-01-01
        • 2014-06-17
        相关资源
        最近更新 更多