我正在尝试建立一个BST。我的结构;

typedef struct node{
    int charSize;
    char english[30];
    char span[40];
    struct node *left;
    struct node *right;
} BST;

我试着比较两个字符数组。在Xcode中,使用下面的行来比较数组不会给我任何警告,但我确信这是错误的,我想知道为什么它没有给我一个错误。
if (head->english <= head2->english)
    printf("headOne is smaller or equal");
else
    printf("headOne is Bigger");

最佳答案

if (head->english <= head2->english)

为什么它没有给我一个错误。
因为比较指针head->englishhead2->english是合法的。记住数组名(字符数组或任何其他类型的数组)是指向第一个元素的指针。所以这里你实际上是在比较这两个指针。
当然,这不是您想要的,您需要strcmp来比较C字符串。

关于c - 节点内部引用?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/40943024/

10-12 16:11