C语言结构体小栗子
若想实现以下功能
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;
}