• Ukieweb

    佳的博客

    曾梦想仗剑天涯,后来工作忙没去。

C学习-基础:结构体类型 结构体变量 结构体数组

image.png

结构体类型 概念

结构体是一种构造类型,它是由若干相互关联的“成员”组成的。每个成员可以是一个基本数据类型也可以是数组、指针者又一个构造类型

结构体既然是一种“构造”而成的数据类型,那么在使用前必须先定义它的组成成分,叫做结构类型

构造了某个结构体类型后,就可以用它来说明该结构类型的变量,然后在程序中引用和操纵该结构体变量

结构类型的定义

struct 结构类型名

{成员列表};

每个成员其形式为:类型说明符  成员名;

结构体数组异同

结构体与数组的相似处

  • 它们都是多个数据的集合

结构体与数组的不同处

  • 结构体中的数据项是无序的,它们的类型可以不同;

  • 结构体成员的访问方式与数组不同,不用下标用名称访问

image.png

结构变量定义 三种方法

先定义结构类型,再说明结构变量

struct person{
	long num;
	char name[30];
	int age;
	char sex;
	char address[200];
	};
	
struct person  ab1,ab2;

定义结构类型同时说明结构变量

struct person{
	long num;
	char name[30];
	int age;
	char sex;
	char address[200];
	}ab1,ab2;

直接说明结构变量

struct {
	long num;
	char name[30];
	int age;
	char sex;
	char address[200];
	}ab1,ab2;

结构体变量初始化

void main()
{
    struct person  
    {
        long num;
        char name[30];
        int age;
        char sex;
        char address[200];
    }ab1 = {1, "Gao Hong ", 38,’M’, "Beijing"};  //在定义时进行初始化赋值
}

结构体变量赋值

#include <string.h>
void main()
{
    struct person
    {
        long num;
        char name[30];
        int age;
            char sex;
    };
    
    struct person ab1, ab2;
    
    ab1.num = 1;                 //直接给成员赋值
    strcpy(ab1.name,“Zhao Jun”); //用 strcpy 函数赋值
    printf(“input age and sex\n”);
    scanf(“% d % c”, &ab1.age, &ab1.sex);               // 交互式输入方法赋值
    ab2 = ab1;                                          // 另一个结构体 整体赋值
    printf("Number=%ld\nName=%s\n", ab2.num, ab2.name); //输出单个 成员
    printf("age=%d\nsex=%c\n", ab2.age, ab2.sex);
}

结构体 长度 

结构变量总长度各个成员长度总和,一般用 sizeof (结构类型名) 获取结构变量在内存实际所占字节总长度。例如:sizeof (struct person);

结构体变量引用

结构变量名.成员名

成员本身又是一个结构,引用方法为:用 .运算符 逐级访问结构的成员。  例如:ab1.lxfs.email

结构体数组 

通常结构体数组用来表示具有相同结构体类型结构体变量集合

struct  person
    {   long num;
        char name[30];
        int age;
        char sex;
        char address[200];
	};
   struct  person  abook[10];

如:

struct person
{
    long num;
    char name[30];
    int age;
    char sex;
    char address[200];
} abook[3] = {{1, "Xu Chong", 25, "F", "Beijing"},
              {2, "Tao Wei", 26, "F", "Shanghai"},
              {3, "Liu Qin", 35, "M", "Shenzhen"}};







0
0
下一篇:C学习-基础:结构体指针 结构体做函数参数

0 条评论

老佳啊

85后,大专学历,中原人士,家里没矿。

由于年轻时长的比较帅气,导致在别人眼里,我一直不谈恋爱的原因是清高,实则是自己的小自卑。最大的人生目标就是找一个相知相爱相容的人,共度余生。

和人相处时如果能感受到真诚,会非常注重彼此的关系,对别人没有什么心机,即使有利益冲突,一般也会以和为贵,因为在这个世界上,物质的东西,从来不会吸引到我。

特别迷恋那些大山大水,如果现在还能隐居,可能早就去了。对那些宏伟的有底蕴的人文景观比较不感冒。

从事于IT行业,却一直对厨房念念不忘,由于身材魁梧,总觉得自己上辈子是个将军,可惜这辈子没当兵,也不会打架。