开讲啦全集周星驰高清:c语言就一道

来源:百度文库 编辑:杭州交通信息网 时间:2024/04/28 17:04:39
46
有以下程序:
#include <stdlib.h>
struct NODE {int num; struct NODE *next;}
main() {struct NODE *p,*q,*r;
p=(struct NODE *)malloc(sizeof(struct NODE )); q=(struct NODE *)malloc(sizeof(struct NODE )); r=(struct NODE *)malloc(sizeof(struct NODE ));
p->num=10; q->num=20; r->num=30; p->next q; q->next=r;
printf("%d\n",p->num+q->next->num); }
输出结果是:40
为什么?
struct NODE是什么意思
struct NODE *p,*q,*r;是什么意思

p=(struct NODE *)是什么意思

malloc(sizeof(struct NODE )); 是什么意思

q=(struct NODE *)是什么意思

malloc(sizeof(struct NODE ));是什么意思

r=(struct NODE *)是什么意思

malloc(sizeof(struct NODE ));是什么意思

p->num=10; q->num=20;是什么意思

r->num=30; p->next q; q->next=r;是什么意思

struct NODE:一个结构体变量,变量名为NODE。
struct NODE *p,*q,*r:定义了三个指针形的变量。
malloc(sizeof(struct NODE )):分配了一个空间,空间的大小为NODE的大小。
q=(struct NODE *):q指针的地址为NODE的地址。
以此类推。
p->num=10; q->num=20;r->num=30;
p->next q; q->next=r
前一行是赋值,后一行是做了一个链。

struct NODE:一个结构体变量,变量名为NODE。
struct NODE *p,*q,*r:定义了三个指针形的变量。
malloc(sizeof(struct NODE )):分配了一个空间,空间的大小为NODE的大小。
q=(struct NODE *):q指针的地址为NODE的地址。
以此类推。
p->num=10; q->num=20;r->num=30;
p->next q; q->next=r
前一行是赋值,后一行是做了一个链。