c语言高级代码(c语言入门自学零基础)


1、C语言中结构体

结构体简介

-在实际的处理对象中,有许多信息是由多个不同类型数组合一起进行描述,而且这些不同类型
的数据是互相联系组成了一个有机的整体。此时,就要用到一种新的构造类型数据--结构体
(srtucture),
简称结构

-结构体的使用为处理复杂的数据结构(如动态数据结构等),提供了有效的手段,且他们为函数
间传递不同类型的数据提供了方便。
嵌入式开发-C语言高级编程-结构体的基本使用

结构体概念

-结构体是用户自定义的新数据类型,有点像高级语言里的对像一样

-例如:定义一个人的结构体,那么这个结构体就有 身高、年龄、性别等

定义一个结构体类型的一般形式为

struct 结构名
{
    
    数据类型  成员名1;
    
    ...
    
    数据类型  成员名n;
}
例如:一个人的结构体
#include <stdio.h>
#include <string.h>
#define N 10
struct person{
    int age;
    int sex;
    char name[N];
} p ;
int main(){
    struct person p1,p2;
    p1.age =25;
    p1.sex =1;
    strcpy(p1.name,"copy");
    printf("%d %d,%sn",p1.age,p1.sex,p1.name);
    return 0;
}

结构体大小

大小:一个结构体变量占用内存的实际大小,也能用sizeof求出

sizeof(运算量)

例如:

sizeof(person p1) sizeof(p2)

2、C语言结构体数组

结构体数组:是指数组中的每个元bai素都是一个结构体
嵌入式开发-C语言高级编程-结构体的基本使用

三种方式

一、先定义结构体类型,再定义结构体数组

struct 结构体名
{
    成员表表;
};
struct 结构体名

例如:
struct person
{
    int age;
    ing sex;
    char name[10];
};

sturct person p[3];

二、在定义结构体同时定义数组

  struct 结构体名
{
    成员表表;
} 数组名[元素个数];

例如:
 {
    int age;
    ing sex;
    char name[10];
}p[3];

三、直接定义结构体数组

 struct 
{
    成员表表;
};

例如:
 {
    int age;
    ing sex;
    char name[10];
 }p[3];

#include <stdio.h>
#include <string.h>
#define N 10
struct person{
    int age;
    int sex;
    char name[N];
} p[2] ;
int main(){

    p[1].age =10;
    p[1].sex =1;
    strcpy(p[1].name,"copy");
    printf("%d %d,%sn",p[1].age,p[1].sex,p[1].name);
    return 0;
}

3、结构体指针

可以设定一个指针变量用来指向一个结构体变量。些时该指针变量的值是结构体变量的起始地址
,该指针称为结构体指针

一般形式:
    struct 结构体名 *结构体指针名
    
注:其中的结构体名必须是已经定义的

#include <stdio.h>
#include <string.h>
#define N 10
struct person{
    int age;
    int sex;
    char name[N];
} p[2] ;
int main(){
    p[1].age =10;
    p[1].sex =1;
    strcpy(p[1].name,"copy");

    struct person * p1;
    p1 =&p[1];
    
    printf("%d %d,%sn",p[1].age,p[1].sex,p[1].name);
    printf("%d %d,%sn",p1->age,(*p1).sex,p1->name);
    return 0;
}

使用 指针->属性  或  (*<指针名>).属性  取值

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

发表评论

登录后才能评论