C结构体

定义结构体的几种方式:

第一种:定义结构体,并声明两个结构体变量。不能通过struct structName xxx;定义结构体变量。

struct 
{
char  title[50];
char  author[50];
char  subject[100];
int   book_id;
} book1,book2;

第二种:定义结构体,并声明两个结构体变量。能通过struct structName xxx;定义结构体变量。

struct Book
{
char  title[50];
char  author[50];
char  subject[100];
int   book_id;
} ;

//或
struct Book
{
char  title[50];
char  author[50];
char  subject[100];
int   book_id;
}book1,book2;

void main(){
struct Book book1;
struct Book book2;
}

第三种:typedef struct 定义结构体并定义结构体别名

typedef struct BookStruct
{
char title[50];
char author[50];
char subject[100];
int book_id;
}Book;

typedef struct定义结构体,同时也定义结构体的别名:Book book;(如果没有typedef就必须用struct BookStruct book;来声明)
这里的Book实际上就是struct BookStruct的别名。Book==struct  BookStruct
另外这里也可以不写BookStruct(于是也不能struct BookStruct book;了,必须是Book book;)

 

结构体数组成员赋值

#include "stdio.h"
#include "string.h"


typedef struct Books
{
char title[50];
char author[50];
char subject[100];
int book_id;
} Book;


int main()
{
Book book;
//book.title = "abcd";   //不能直接赋值
strcpy(book.title,"abcd");
printf("output:%s",book.title);
return 1;

}

 

->运算符用在指针上,获取成员变量的值

#include <stdio.h>
void main(){
struct stu {
char name;
int age ;
};
struct stu s ;
struct stu *ptr = &s ;
s.name = "zhangsan";
s.age = 25;
printf("姓名:%c,年龄:%d\n",s.name,s.age);
printf("姓名:%c,年龄:%d\n",ptr->name,ptr->age);
}

 

posted @ 2017-02-27 17:54  N神3  阅读(286)  评论(0编辑  收藏  举报