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: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) ;
}
就是函数,只不过返回的是一个结构体的指针 jackz007 发表于 2019-3-5 20:46
楼主猜对了,node * createNode(int v) 还真是函数定义,请看以下示例:
谢谢大佬 BngThea 发表于 2019-3-6 09:01
就是函数,只不过返回的是一个结构体的指针
谢谢大佬
页:
[1]