美文网首页
C语言_结构体

C语言_结构体

作者: 拙峰朽木 | 来源:发表于2018-04-28 09:49 被阅读7次

@(C语言)

[toc]

定义

一系列不同类型的数据的结合

使用

//结构体 
struct Student{
    char name[20];
    int age;
    char gender[10];
    int classId;
};
//结构体
struct Student{
    char name[20];
    int age;
    char gender[10];
    int classId;
}Lucy;
//匿名全局的结构体,直接分配内存
struct{
    char name[20];
    int age;
    char gender[10];
    
}stu3;

类型!=变量。
结构体名代表的只是结构体类型,没有内存空间。
结构体中的成员可以单独使用

结构体数组

/////结构体数组//////
int main(){
    //初始化
    struct Student stu[3] ={{"Lucy",30},{"lilei",33},{"Hanmeimei",35}};
    
    struct Student s[5];
    for (int i=0; i<5; i++) {
        s[i].age=20+i;
        strcpy(s[i].name,"lucy");
    }
    for (int i=0; i<5; i++) {
        printf("s %d: %s %d \n",i,s[i].name,s[i].age);
    }
    return 0;
}

输出:
s 0: lucy 20
s 1: lucy 21
s 2: lucy 22
s 3: lucy 23
s 4: lucy 24

  • 初始化
 int i;
    struct Student * stud ;
    stud =(struct Student *)malloc(sizeof(struct Student)*4);
    memset(stud,0,sizeof(struct Student)*4);
    
    for (i=0; i<4; i++) {
        (stud+i)->age =20+i;
        strcpy((stud+i)->name,"lucy");
        
        strcpy(stud[i].name,"cailei");
        stud[i].age =30+i;
    }
    for (int i=0; i<4; i++) {
                printf("s %d: %s %d \n",i,stud[i].name,stud[i].age);
            }

输出:
s 0: cailei 30
s 1: cailei 31
s 2: cailei 32
s 3: cailei 33

实现个单链表

struct Node{
    int data;
    struct Node *next;
};

int enqueNode(struct Node * head,int data){
    struct Node * node=(struct Node *)malloc(sizeof(struct Node));
    node->data =data;
    node->next = NULL;
    
    struct Node *p=head;
    while (p->next!=NULL) {
        p=p->next;
    }
    p->next =node;
    return 1;
}

int main(){
    struct Node * list;
    list = (struct Node*)malloc(sizeof(struct Node));
//    list = (struct Node*)calloc(10,sizeof(struct Node));
    list->data =0;
    list->next =NULL;
    
    int i ;
    int num =10;
    for (i =0; i<num; i++) {
        enqueNode(list,i+1);
    }
    
    while (list->next!=NULL) {
        printf("%d \n",list->data);
        list =list->next;
    }
}

输出:
0
1
2
3
4
5
6
7
8
9

相关文章

  • C语言和OC的结构体(struct)

    Struct(结构体) 1.结构体定义 2.结构体变量 3.结构体数组 4.C语言结构体指针 5.C语言共用体 6...

  • C语言结构体用法很多,坑也很多

    C语言可谓是编程界的传奇语言,历经几 十 年,依然排名前列。 本文主要说的是C语言中的结构体,结构体是C语言中重要...

  • C语言结构体

    结构体 本文介绍C语言结构体,struct 在C++中功能相对C较多,相当于类,这里暂时不讨论,本文单独讨论C语言...

  • 嵌入式学习笔记19.11.25

    c语言结构体 结构体一般定义全局变量 struct stu{//struct 定义结构体 stu 结构体名称 in...

  • 12-Go语言结构体

    结构体 结构体的基本概念 什么是结构体Go语言中的结构体几乎和C语言中的结构体一模一样都需要先定义结构体类型, 再...

  • C语言学习笔记-结构体占用内存大小的计算

    引言 结构体在C语言中虽然经常使用,但是怎么计算一个结构体占用多大的内存,很多C语言的新手都没注意过,其实C语言的...

  • 结构体与指针

    1.1 Linux C语言结构体 简介:本课程深入的讲解了C语言中,预处理是怎么回事,结构体和公用体又是如何使用及...

  • c语言中的结构体

    结构体是 C 语言主要的自定义类型方案,这篇就来认识一下结构体。 一、结构体的形态 C源程序(struct.c):...

  • 闲聊C语言结构体

    结构体是 C 语言主要的自定义类型方案,这篇就来认识一下结构体。 一、结构体的形态 C源程序(struct.c):...

  • 深入理解Runtime中的isa

    objc_object Objective-C 所有对象都是 C 语言结构体objc_object,这个结构体中包...

网友评论

      本文标题:C语言_结构体

      本文链接:https://www.haomeiwen.com/subject/fqgwlftx.html