我是靠谱客的博主 动人羽毛,这篇文章主要介绍C 语言 建立数据结构 结构体变量与数组的结合 持续更,现在分享给大家,希望可以做个参考。

首先我们来捋一捋结构体变量那些事儿

结构体变量


学习一个新的语法 我们要弄明白的是:这个语法的作用,这种语法的初始化,这种语法的引用,这种语法的补充用法,这个语法与其他语法的结合,这个语法在实际题目中的应用。

1.自定义结构体的作用:

结构体(struct)是由一系列具有相同类型或不同类型的数据构成的数据集合

简单来说结构体就是定义了一个整体,里面可以包含各种数据类型。

具体如下:

        struct  结构体名

        {      

               类型 成员名1;  

               类型 成员名2;      

                …    

              类型 成员名n;

        };

2.结构体的定义

结构体的定义有三种方式,列举如下:

 第一种就是先声明后定义:         

复制代码
1
2
3
4
5
6
7
struct student { char name; int grade; char sex; }; struct student s1;

 第二种就是声明的时候同时定义  : 

复制代码
1
2
3
4
5
6
struct student { char name; int number; char sex; }s1;

第三种就是声明的时候定义且  无结构体名   :  

复制代码
1
2
3
4
5
6
struct { char name; int number; char sex; } s1;

注意:第二种第三种都是大括号之后直接加s1然后加上分号的。

这里一定要注意 结构体有一个名字叫结构体类型名,然后定义的时候还要给结构体定义一个名字这个叫做结构体变量名。

3.结构体的初始化

 静态初始化

复制代码
1
2
3
4
5
6
7
8
struct student { int number; char name; char sex; };struct student s1={21,"周明",'m'};

动态初始化

此处涉及到结构体变量的引用:结构体变量名.成员

复制代码
1
2
3
4
5
6
7
8
9
struct student { int number; char name; char sex; }s1; scanf ("%d %c %c",& s1.number,&s1.name,&s1.sex);

 4.结构体的引用  :结构体变量名.成员        

结构体的引用不能是整体

比如说:scanf("  %d%d",&s1.number1,&s1.number 2)  这样就是准确的。

    但是 :scanf(" %d",&s1) 或者是 scanf("%d%d",&s1) 或者直接写 s1={32,43}没有定义 这些都是错误的

输出也是一样的:不可以使用整体。    

5.结构体的补充用法

(1)赋值

以下是将S1的值赋给S2

复制代码
1
2
3
4
5
6
struct { int num; int lenf; }s1={22,32},s2; s2=s1;

  (2)结构体的嵌入

比如:我们要表示一个学生的所有信息,其中的生日信息又包括了年月日,就有了以下的程序                   

复制代码
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
#include <stdio.h> struct kid { int year; int month; int days; }; struct student { char name[10]; int age; struct kid s1; }s2={"狗狗",1,{1998,12,20}}; int main() { printf("%st%dt%d-%d-%d",s2.name,s2.age,s2.s1.year,s2.s1.month,s2.s1.days); return 0; }

   其中我们有几个点需要注意:

【1】.  字符数组与字符串

          ((1))比如说给字符数组储存一个“China”,它是这样存放的 :

China

所以 我们输入的“狗狗”需要定义一个数组存放, 并且在C语言中中文字符占有两个字节,英文字符占有一个字符,因此数组可存放的字节应该大于4。 

           ((2))因为char 是字符型变量,是一个字节。所以我们要输入或者输出4个字节的“狗狗”,我们应该用%s来输入或者输出这个字符串,而不是%c。

 【2】t 是指往后挪动一个tab.

(3)sizeof 函数

sizeof函数是一种计算位数的函数,它的使用方式有sizeof(数据)例如:【sizeof(int)】,sizeof(数据类型)例如:【sizeof(s1.name)】;

结构体和数组的综合应用:结构体数组

1.   结构体数组的数组的意义

表示相似的N个整体,运用数组存储这N个整体。

2.定义和初始化

方法跟普通的结构体其实是一样的,只是在定义结构体变量的时候变为struct student s[10]; 

静态初始化可以表示为:

         

 动态初始化就参考下面这个程序吧。

题目如下:

假设要从3个候选人Li、Zhang、Fun中选一班长,今有10个人参加投票。从键盘输入这10张选票上的人名,统 计并输出投票结果。

最后

以上就是动人羽毛最近收集整理的关于C 语言 建立数据结构 结构体变量与数组的结合 持续更的全部内容,更多相关C内容请搜索靠谱客的其他文章。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(73)

评论列表共有 0 条评论

立即
投稿
返回
顶部