【黑马程序员】C语言结构体

原创 2015年11月17日 16:41:29

------Java培训、Android培训、iOS培训、.Net培训、期待与您交流! -------


一、c语言中构造类型


构造类型:构造数据类型是根据以定义的一个或多个数据类型用构造的方法来定义的。


二、什么是结构体


结构是一种构造类型,它是由若干成员组成的。每一个成员可以是一个基本数据类型或者是一个构造类型。


三、为什么要构造类型


结构体可以把功能相同的数据组织起来,存在一起,用的时候方便,而且在调用函数的时候,若传递参数较多,传一个结构体相对简单一些,很多系统自带的函数必须用结构体。


四、定义结构体的方法


一般形式为: struct 结构名{


成员列表;

};


*注意:结构体在定义完成后,计算机不会给结构体分配内存空间

会在定义结构体变量后,分配存储空间



五、结构体变量中中成员的访问方法


结构体变量名.成员名


六、结构数组的概念

结构数组的每一个元素都是具有相同结构类型的下标的结构变量。


定义格式:

struct 结构名{


成员列表

}数组名[数组长度];


<span style="font-size:14px;">//
//  main.c
//  利用stu结构体,计算学生平均成绩和不及格的人数,打印80-100分学生的成绩姓名
//
//  Created by Brisinga on 15/11/16.
//  Copyright © 2015年 yan. All rights reserved.
//

#include <stdio.h>

struct stu{
    
    int num;
    char *name;
    char sex;
    float score;
    
};
int main(int argc, const char * argv[]) {
    
    struct stu boy[5]={{101,"Li ping",'F',45},
                       {102,"Zhang ping",'M',62.5},
                       {103,"He fang",'F',92.5},
                       {104,"Wang ming",'M',58}};
    
    int count = 0;  //定义一个变量用来存储不及格的人数
    float avScore = 0.0f; //定义一个变量用来存储平均成绩
    for (int i=0; i<sizeof(boy)/sizeof(struct stu); i++) {
        if (boy[i].score<60) {
            count++;        //统计不及格人数的个数
        }else if(boy[i].score>=80){
            printf("%s\t",boy[i].name);  //打印大于80的姓名
        }
        avScore +=boy[i].score;     //累加所有学生的成绩
    }
    printf("平均成绩为:%.2f\n",avScore/5);      //打印平均成绩
    return 0;
}
</span>

七、结构体指针定义和初始化

1.指向结构体变量的指针

结构指针变量中的值是所指向的结构体变量的首地址。


一般形式为:

struct 结构名  *结构体指针变量名


2.结构体指针简介访问变量的值


一般形式为:

(*结构指针变量).成员名


或为: 结构指针变量->成员名


八、结构体嵌套使用


1)成员也可以是一个结构体,即构成了嵌套的结构

2)不可以嵌套自己这个类型的变量


<span style="font-size:14px;">//
//  main.c
//  结构体嵌套自己
//
//  Created by Brisinga on 15/11/16.
//  Copyright © 2015年 yan. All rights reserved.
//

#include <stdio.h>
//定义一个结构体
struct Person{

    char *name;
    int age;
    struct Person *child;
};
int main(int argc, const char * argv[]) {
    //创建子结构体
    struct Person kim = {"kim",8,NULL};
    struct Person p = {"林志颖",38,&kim};
    //输出结构体信息
    printf("%s的儿子%s的年龄为:%d\n",p.name,p.child->name,p.child->age);
    return 0;
}
</span>


版权声明:本文为博主原创文章,未经博主允许不得转载。

相关文章推荐

黑马程序员_C语言基础_构造类型(数组,结构体,枚举)

------Java培训、Android培训、iOS培训、.Net培训、期待与您交流! -------      C语言中把构造类型分为三种:数组,结构体,枚举,下面就对它们一一学习。 1、数组  ...

黑马程序员---C语言结构体

———Java培训、Android培训、iOS培训、.Net培训、期待与您交流! ———

黑马程序员——4、C语言(结构体、枚举)

一、jie'g

黑马程序员——ios开发基础之C语言数组、指针与结构体

------Java培训、Android培训、iOS培训、.Net培训、期待与您交流! ------- 第一讲  数组

黑马程序员——C语言基础---结构体2

------Java培训、Android培训、iOS培训、.Net培训、期待与您交流! ------                        第五讲   ...

黑马程序员 -- C语言 结构体 预编译

------- android培训、.Net培训、IOS培训、碧空海的技术博客,期待与您交流!---------- 第六讲  结构体  预编译  A.结构体 1.数组:只能有多个相同类型的数...

黑马程序员--c语言:结构体、枚举、预处理指令、typedef、static与extern、递归思想

一、结构体 1.定义结构体  struct Person { // 里面的3个变量,可以称为是结构体的成员或者属性         int age; //...

黑马程序员 C语言------结构体 枚举学习

结构体   枚举 1.局部变量:  >定义. 在代码块内部定义的变量都是局部变量, 包括形参  >作用域.从定义变量的那一行开始,一直到代码块结束  >存放位置.存放在栈中  >生命周期...

黑马程序员——ios基础---C语言:结构体、条件编译、文件操作

一、结构体: 1、安全的字符串读取和输出的函数  读入字符串的方法:  1) scanf 缺点:不能接收空格  2) gets 优点:可以接受含有空格的字符串  3) fgets(); 优点:可以帮我...

黑马程序员--ios基础--c语言--结构体、枚举

------Java培训、Android培训、iOS培训、.Net培训、期待与您交流! -------  一.结构体的定义及简单使用 数组:职能由多个相同类型的数据构成结构体:可以由多个不...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:深度学习:神经网络中的前向传播和反向传播算法推导
举报原因:
原因补充:

(最多只允许输入30个字)