结构体:是一种构造类型 它是由若干成员组成的 其中每一个成员都可以是一个基本数据类型或者又是一个构造类型

定义结构体变量后,系统就会为其自动分配内存

为了便于更大的程序便于修改和使用  常常将结构体类型的变量声明在一个头文件中 这样在其他源文件中如果需要使用该结构体类型就可以用#include命令将该头文件包含到源文件中

结构体的定义:

(1) 常用的一种定义方式

 struct 结构体名 {

   成员列表;

 };

(2)定义结构体类型的同时,定义该类型的变量

 struct 结构体名{

   成员列表;

 }变量1,变量2; 注意此处大括号这里没有;号的 当定义完变量后才有分号;

(3)不定义结构体名 (不推荐这种方式 如果要使用该结构体类型的变量 就只能在定义结构体的时候 定义该类型都变量了)

  struct {
  
成员列表; }变量1,变量2;

2.结构体的引用

定义好结构体后 当然是开始使用结构体拉

引用的方式:

(1)通过成员运算符引用结构体 " . "

语法:结构体变量名.要引用的成员

例子:

 #include<stdio.h>
int main()
{
//定义一个People类型的结构体
struct People{
char name[];//名字
char sex[];//性别
int age;//年龄
int Class;//班级
}me;
//将me声明为People类型的结构体变量 printf("Please Input Your Name\n");
scanf("%s", &me.name);
printf("Please Input Your sex\n");
scanf("%s", &me.sex);
printf("Please Input Your age\n");
scanf("%d", &me.age);
printf("Please Input Your Class\n");
scanf("%d", &me.Class); printf("%s", me.name);
printf("%s", me.sex);
printf("%d", me.age);
printf("%d", me.Class); getchar();
getchar();
return ;
}

程序定义个一个叫做People结构体类型 然后将me定义为People结构类型的变量 然后对me结构体变量中的成员进行 键盘赋值 最后输出

C语言 结构体篇的更多相关文章

  1. C语言结构体篇 结构体

    在描述一个物体的属性的时候,单一的变量类型是无法完全描述完全的.所以有了灵活的结构体变量. 结构体变量从意义上来讲是不同数据类型的组合,从内存上来讲是在一个空间内进行不同的大小划分. 1.1 结构体类 ...

  2. 读陈浩的《C语言结构体里的成员数组和指针》总结,零长度数组

    原文链接:C语言结构体里的成员数组和指针 复制例如以下: 单看这文章的标题,你可能会认为好像没什么意思.你先别下这个结论,相信这篇文章会对你理解C语言有帮助.这篇文章产生的背景是在微博上,看到@Lar ...

  3. 漫谈C语言结构体struct、公用体union空间占用

    先用代码说话: #include<stdio.h> union union_data0{ int a ;//本身占用4个字节 char b ;//本身占用1个字节 int c ; }; u ...

  4. 解析C语言结构体对齐(内存对齐问题)

    C语言结构体对齐也是老生常谈的话题了.基本上是面试题的必考题.内容虽然很基础,但一不小心就会弄错.写出一个struct,然后sizeof,你会不会经常对结果感到奇怪?sizeof的结果往往都比你声明的 ...

  5. 不可或缺 Windows Native (8) - C 语言: 结构体,共用体,枚举,类型定义符

    [源码下载] 不可或缺 Windows Native (8) - C 语言: 结构体,共用体,枚举,类型定义符 作者:webabcd 介绍不可或缺 Windows Native 之 C 语言 结构体 ...

  6. Go语言结构体(struct)

    Go 语言结构体 Go 语言中数组可以存储同一类型的数据,但在结构体中我们可以为不同项定义不同的数据类型. 结构体是由一系列具有相同类型或不同类型的数据构成的数据集合. 结构体表示一项记录,比如保存图 ...

  7. C语言结构体定义的几种方法

    什么是结构体? 在C语言中,结构体(struct)指的是一种数据结构,是C语言中聚合数据类型(aggregate data type)的一类.结构体可以被声明为变量.指针或数组等,用以实现较复杂的数据 ...

  8. 对嵌入式开发C语言结构体的一点总结

    今天冬至居然不上班,公司的良心啊!这回有心情写博客和日志了,好了,废话不多说.直接看下文: 鉴于嵌入式开发过程中,C语言结构体的使用当然是必不可少.话说,基础什么的比你会更牛逼的算法更重要,基础不牢, ...

  9. C语言结构体变量私有化

    操作系统 : CentOS7.3.1611_x64 gcc版本 :4.8.5 问题描述 C语言结构体定义中的变量默认是公有(Public)属性,如果实现成员变量的私有(Private)化? 解决方案 ...

随机推荐

  1. get****Context各个方法分析

    1 getApplicationContext分析 该方法为contextImpl类的方法,返回一个ApplicationContext.方法代码为: public Context getApplic ...

  2. 当文字过长时裁剪(显示省略号或只裁剪 用CSS方法,不用程序)

    原文发布时间为:2009-09-16 -- 来源于本人的百度文章 [由搬家工具导入] CSS中ellipsis()应用【转】 CSS手册中text-overflow属性的定义:   语法: text- ...

  3. Sql Server 2005 mdf、ldf文件无法复制问题

    [问题原因]Sql Server服务只要启动就一直占用,故无法进行编辑操作. [解决办法 - 1]: 1)在开始-运行对话框中输入"services.msc”,显示如下界面: 2)关闭如上选 ...

  4. 19年的桌面KDE的风雨和陪伴,没有什么能够割舍

    概述 KDE是史上功能最强大的桌面环境之一:开源且可自由使用.19年前,1996年10月14日,德国程序员 Matthias Ettrich 开始了这个美观的桌面环境的开发.KDE 提供了用户界面以及 ...

  5. 牛客网 牛客小白月赛1 F.三视图

    F.三视图   链接:https://www.nowcoder.com/acm/contest/85/F来源:牛客网     这个题自己想一下三维的,正视图和左视图中y轴为行数,x轴和z轴是列数,因为 ...

  6. 配置之MySQL5Dialect

    报错: org.hibernate.service.spi.ServiceException: Unable to create requested service [org.hibernate.en ...

  7. Codeforces 586D Phillip and Trains(DP)

    题目链接 Phillip and Trains 考虑相对位移. 每一轮人向右移动一格,再在竖直方向上移动0~1格,列车再向左移动两格. 这个过程相当于每一轮人向右移动一格,再在竖直方向上移动0~1格, ...

  8. Codeforces 509E(思维)

                                                                                                         ...

  9. MyBatis动态SQL底层原理分析 与 JavaScript中的Date对象,以及UTC、GMT、时区的关系

    http://fangjian0423.github.io/categories/mybatis/ http://xtutu.me/the-date-object-in-js/

  10. 在Bonobo服务器里创建Repository(库)

    新建Repository步骤如下: 点击“库”链接,进入“库管理”页面,如下图所示: 在“库管理”页面点击“创建新库”按钮,进入“创建新库”页面,如下图所示: 点击“建立”按钮,会进入“库管理”页面, ...