结构体定义

引入:数据类型分为

1.基本数据类型(定点存储和浮点存储)

2.指针类型

3.扩展类型(复合类型)

(1)数组 变量数量扩展

(2)枚举 值的可读性

(3)结构体(struct)

(4)联合体(union)

今天所了解的是结构体与联合体

一.结构体

1.结构体定义:

在一个主题下组装一个类型。

#include <stdio.h>
int main()
{
  /*定义一个结构体*/
  typedef enum cardtype{SFZ,XSZ,JSZ} CARD_TYPE;
  struct stu_infor
	{
		int StuNum;
		CARD_TYPE CardType;
		char CardNum[30];
		char StuName[30];
		char Sex;
	}s1;
  /*创建结构体变量并且赋值*/
  
  /*1.创建变量
(1)在struct后直接创建(如上)
(2)单独定义(如下)*/
  struct stu_infor s2;
  
  /*2.赋值*/
  //(1)按顺序赋值
  struct stu_infor s3={3,SFZ,"2404020201",'m'};
  //(2).式赋值
  struct stu_infor s3={.sex='m',.StuNum=4};
  
  /*键盘输入*/
  scanf_s("%d%d%s%s %c", &s1.StuNum, &s1.CardType, s1.CardNum, 30,  s1.StuName, 30,&s1.Sex,1);
  //整形加取地址符号,字符串需要用““,但是c语言中数组名就为地址不用加&,字符用’‘。
}

2.结构体数组以及typedef的灵活运用

#include <stdio.h>
/*定义一个结构体*/
typedef struct book
{
	int year;
	char writer[30];
	char bookName[30];
	double price;
}Book;                    //typedef整个数据类型为Book
typedef struct book BOOK; //typedef struct数据类型为BOOK ,两种定义方法均可
int main  ()
{
	
	/*创建结构体数组变量*/
	//int arr[4] = { 1,2,3,4 };
	Book books[4] = 
	{
		{2000,"谭浩强","C语言从入门到放弃",28.8},
	    {2000,"吴军","浪潮之巅",68.2},
	    {2000 ,"毛泽东","论持久战",48.6},
	    {1998 ,"刘慈欣","三体",58.2}
	};

	/*为结构体成员赋值 用.操作符*/
	for (int i = 0; i < sizeof(books) / sizeof(books[0]); i++)
	{
		printf("%-6d %-10s %-20s %.2f\n",books[i].year,books[i].writer,books[i].bookName,books[i].price);
	}
	 
	return 0;
}

3.结构体指针

/*使用指针操作结构体成员*/ 
	  
	/*方式一:  (*指针).成员*/
	 (*q).price = 10;
	 
	/*方式二:  指针 -> 成员*/
	 p->price = 20;
	 strcpy(p->bookName, "C语言从入门到精通");

全部评论
看来学校又整新活了
点赞 回复 分享
发布于 2024-12-11 12:08 浙江

相关推荐

评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客企业服务