若想实现以下功能
- int main() {
- // printf("Hello, World!\n");
- char titile[10][100];
- char author[10][100];
- strcpy(titile[0],"shuihu");
- strcpy(author[0],"luo");
- strcpy(titile[1],"sanguo");
- strcpy(author[1],"san");
- int i;
- for ( i = 0; i <2 ; ++i) {
- printf("%s %s\n",titile[i],author[i]);
- }
-
- return 0;
- }

使用结构体
- struct book{
- char title[100];
- char author[100];
- };
-
- int main(void ) {
- // printf("Hello, World!\n");
- struct book books[10];
- strcpy(books[0].title, "shuihu");
- strcpy(books[0].author, "luo");
- strcpy(books[1].title, "sanguo");
- strcpy(books[1].author, "san");
- int i;
- for (i = 0; i < 2; ++i) {
- printf("%s %s\n", books[i].title, books[i].author);
- }
-
-
- return 0;
- }
可以把struct book当场一种结构体
typedef int ABC;//ABC是Int的别名ABC s=12;//s=12
typedef相当于是给变量类型取别名

一般的结构体可以这样写

简单的结构体加指针


-
- typedef int ABC;//ABC是Int的别名
- struct book{
- char title[100];
- char author[100];
- } ;//这样子写不能同时申明变量
- typedef struct book book;
- int main(void ) {
- // printf("Hello, World!\n");
- struct book books[10];
- book *b=&books[0];
- // book books[10];//与上一句含义相同
- ABC s=123;
- strcpy(books[0].title, "shuihu");
- strcpy(books[0].author, "luo");
- strcpy(books[1].title, "sanguo");
- strcpy(books[1].author, "san");
- int i;
- for (i = 0; i < 2; ++i) {
- printf("%s %s\n", books[i].title, books[i].author);
- }
- printf("\ns=%d",s);
- printf("\nb.title=%s\n",b->title);
- printf("\nb.title=%s\n",(*(b+1)).title);
-
- return 0;
- }