免费软件大全app下载seo怎么发文章 seo发布工具
什么是结构体
C++的结构体处于很尴尬的地方,因为他是为了与c保持兼容而保留的(CSDN的一条评论)
不过对于算法比赛当中,我们只要记得,结构体比类要快很多就行。
但是,我学的是C呀~~~(不是)
如何使用结构体
引入
我们用一本书为例,书有 页数, 出版商, 作者,我们就可以这样定义
struct book{int page;string publicer;string author;
};
恭喜你,你已经会引入结构体了。
使用
int main(){struct book book1;
}
简化使用代码
这里是我们可以看到,每当我们想要使用Struct的时候,我们必须使用
struct book
这可还行,为了简化代码,我们可以这样写
typedef struct book book;
这里的意思是,在预处理(编译的第一步),我们首先会把book,直接替换成struct book。也就是说我们可以直接用book来定义我们的变量
int main(){book book1;
}
再简化,我们甚至可以直接这样简化
typedef struct{int page;string publicer;string author;
} book
这段代码的含义就是
struct book{int page;string publicer;string author;
};typedef struct book book;
特别提醒
这代码能看就行,在C++里面是不会有任何问题的,但是在C里面就可能出现bug
struct LNode{int data;struct LNode* next;};typedef struct LNode LNode;typedef LNode* LinkList;
typedef struct
{int data;struct LNode* next;
}LNode,*LinkList;
这里第三行会出现LNode没有定义的问题。C只能简化成
typedef struct LNode
{int data;struct LNode* next;
}LNode,*LinkList;