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

概述

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

结构体变量


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

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

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

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

具体如下:

        struct  结构体名

        {      

               类型 成员名1;  

               类型 成员名2;      

                …    

              类型 成员名n;

        };

2.结构体的定义

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

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

struct student
{
    char name;
    int grade;
    char sex;
};
struct student s1;

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

struct student
{
    char name;
    int number;
    char sex;
}s1;

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

struct 
{
    char name;
    int number;
    char sex;
} s1;

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

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

3.结构体的初始化

 静态初始化

struct student 
{
    int number;
    char name;
    char sex;
};struct student s1={21,"周明",'m'};

动态初始化

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

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

struct 
{
   int num;
   int lenf;
}s1={22,32},s2;
s2=s1;

  (2)结构体的嵌入

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

#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 语言 建立数据结构 结构体变量与数组的结合 持续更所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

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

评论列表共有 0 条评论

立即
投稿
返回
顶部