Bella666 发表于 2019-3-5 20:28:37

c语言链表

struct NodeT {
        int data;
        struct NodeT *next;
};

typedef struct NodeT node;



node *createNode(int v){
        node *new;
        new = (node *)malloc(sizeof(node));
        assert(new != NULL);
        new->data = v;
        new->next = NULL;
        return new;
}
大佬,下面的那个createNode,这是什么用法,我的意思是这也不是定义的函数,返回的还是一个结构体,不太懂

jackz007 发表于 2019-3-5 20:46:07

本帖最后由 jackz007 于 2019-3-5 20:53 编辑

    楼主猜对了,node * createNode(int v) 还真是函数定义,请看以下示例:
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <assert.h>

typedef struct NodeT {
      int data            ;
      struct NodeT * next ;
} node                      ;

node * createNode(int v)
{
      node * n                        ; // 变量名不可以用 new 否则无法编译
      n = (node *) malloc(sizeof(node)) ; // 为链表新节点分配内存空间
      assert(n != NULL)               ; // 确保内存分配成功
      n -> data = v                     ; // 为新节点赋值
      n -> next = NULL                  ; // 新节点链表指针指向 NULL
      return n                        ; // 返回指向新链表节点的指针
}

main(void)
{
    node * p                   ;
    p = createNode(200)      ; // 创建一个data 成员值为 200 的新节点
    printf("%d\n" , p -> data) ;
}

BngThea 发表于 2019-3-6 09:01:51

就是函数,只不过返回的是一个结构体的指针

Bella666 发表于 2019-3-6 10:33:25

jackz007 发表于 2019-3-5 20:46
楼主猜对了,node * createNode(int v) 还真是函数定义,请看以下示例:

谢谢大佬

Bella666 发表于 2019-3-6 10:34:02

BngThea 发表于 2019-3-6 09:01
就是函数,只不过返回的是一个结构体的指针

谢谢大佬
页: [1]
查看完整版本: c语言链表