博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
C语言中结构体基本知识
阅读量:5923 次
发布时间:2019-06-19

本文共 1560 字,大约阅读时间需要 5 分钟。

1 声明结构体

 声明结构体 关键字struct 结构体名字 {类型修饰符 成员名};

声明一个学生的结构体

第一种方法

struct student{

    char name[20]; // 结构体成员中可以使用另外的构造类型.
    int number;   // 每个成员之间使用;隔开.
    int age;
    float score;
};
typedef struct student Student; // 将现有的类型修饰符该别名为 Student

关键词 typedef 用于改别名

第二种方法
typedef struct teacher{
    char name[20];
    char gender;
    int age;
    char major[20];
    
}Teacher;

第二种最常用

结构体声明写在main函数上边或写在.h文件中

2 结构体的使用(在main函数中)

   struct teacher tea1 = {"shenqingchang",'m',23,'c'};

   // 结构体成员变量不能使用变量名全部输出成员信息
     printf("%s",tea1);不对的输出

正确输出

     printf("%s",tear1.name);

   

修改成员名

    int a = 0;
    a = 10;
    修改第一名老师的年龄为 15
    tear1.age = 15;
    printf("%d",tear1.age);
    // 修改第一名老师的名字为"dingchuyuan"
    tear1.name = "dingchuyuan"; // 错误的修改方式
    strcpy(tear1.name, "dingchuyuan");
    printf("%s\n",tear1.name);
修改或输出结构体时,成员变量需要结构体名加"."加变量名才能用

举例 tear1.name = "zhangsan" 这样写才能修改

3 结构体内存占用空间

    1 结构体成员变量,储存是从上至下,从第一开始储存
    2 在内存中,储存成员变量时,规则是: 个数据类型的倍数储存,如果被占用,向下延伸
    3 计算结构体成员的空间,总和数 = 成员变量中最大字节数的最小倍数
4 结构体在函数中的运用

结构体运用在函数中需要写在.h的声明文件中,其它和函数没有太大区别

举例

A 声明结构体

#import <Foundation/Foundation.h>

// 使用声明函数
typedef struct teacher{
    char name[20];
    int age;
    float score;
    
}Teacher;
// 打印所有老师信息
void showInfoOfTeachers(Teacher array[],int count);

B 实现(定义)函数

#import "Teacher.h"

//输出所有老师信息

void showInfoOfTeachers(Teacher array[],int count){
    printf("老师信息:\n");
    for (int i = 0; i < count; i++) {
        printf("%-20s %-2d %.2f\n",array[i].name,array[i].age,array[i].score);
    }
}

C调用函数在main函数里

Teacher tea[4] = {

        {"wangke",25,90},
        {"sunning",40,89},
        {"xulaoshi",50,78},
        {"wangcuiling",35,91}

showOfTeachers(tea, 4);

 

转载于:https://www.cnblogs.com/shen-qing-chang/p/4838772.html

你可能感兴趣的文章
python MySQLdb安装和使用
查看>>
Java小细节
查看>>
poj - 1860 Currency Exchange
查看>>
chgrp命令
查看>>
Java集合框架GS Collections具体解释
查看>>
洛谷 P2486 BZOJ 2243 [SDOI2011]染色
查看>>
linux 笔记本的温度提示
查看>>
(转)DOTA新版地图6.78发布:大幅改动 增两位新英雄
查看>>
数值积分中的辛普森方法及其误差估计
查看>>
Web service (一) 原理和项目开发实战
查看>>
跑带宽度多少合适_跑步机选购跑带要多宽,你的身体早就告诉你了
查看>>
广平县北方计算机第一届PS设计大赛
查看>>
深入理解Java的接口和抽象类
查看>>
java与xml
查看>>
Javascript异步数据的同步处理方法
查看>>
快速排序——Java
查看>>
unity游戏与我
查看>>
187. Repeated DNA Sequences
查看>>
iis6 zencart1.39 伪静态规则
查看>>
SQL Server代理(3/12):代理警报和操作员
查看>>