结构体简单理论知识

为什幺使用结构体

有的时候我们需要把不同类型的数据封装成一个整体,以便于引用。

结构就类似于类 一个类就是将方法属性封装起来 而结构简单说是将 一些变量组合在一起。

定义一个结构的一般形式

struct 结构名

{

成员列表   //必须进行类型声明

}变量名表列;

例如:

struct People
{
     char *name;
     char sex
     int age;
}people1,people2;

结构的嵌套定义:

struct Date
{
     int year;
     int month;
     int day;
};

struct Boy
{
    int num;
    char *name;
    char sex;
    struct Date birthday;
}boy;

结构体变量的引用:

在引用变量的时候不能将一个结构体变量作为一个整体进行输入输出(在引用的时候应该是 结构体变量名.成员名)

‘.’是成员运算符 它所在的运算符中优先级最高 所以 (结构体变量名.成员名)可以看成一个整体 不用加括号

可以引用结构体变量成员的地址也可以引用结构体变量的地址。

结构体变量的地址主要用作函数参数,传递结构体变量的地址。

同一个结构体中的结构体变量名之间可以直接进行整体赋值。

结构体数组:

每一数值的元素都是一个结构体变量

结构体数组的定义与初始化

struct student
{
   char *name;
   char sex;
   int age;
}stu[2]={
                  {"张三",‘M‘,17},
                  {"李四",‘M‘,18}
              };

指向结构体数据类型的指针:

一个结构体变量的指针就是该结构体变量所占据的内存段的起始地址,

所以我们就可以定义一个指针,用来指向一个结构体变量,此时指针变量的值就是结构体变量的起始地址。

结构指针的定义:struct 结构名 *结构指针变量名

初始化过程  结构指针变量=&结构变量   //正确

结构指针变量=&结构名   //错误

在这里我们不能混淆结构名和结构变量的理解

结构名只能表示一个结构形式,在编译时并不会分配内存空间 所以也不会有地址。

用结构指针变量进行访问的方式:

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

时间: 2024-10-27 13:38:57

结构体简单理论知识的相关文章

c 结构体 简单的了解

1.声明一个学生类的 结构体 struct Student{ int age; char name[20];//长度为20的字符串 int weiht;//像正常一样的申请变量,这个变量属于结构体的一部分 };//这分号 必须有,不然报错 结构体和类差不多,必须有对象才能操作,如:stcuct Stdent std; 赋值: std.age = 10; std.weiht=100; 字符串没法整体赋值,所以使用函数strcpy, strcy(std.name,"小明"); 输出: pr

【转】结构体struct相关知识

第一篇:typedef struct与struct的区别 1. 基本解释 typedef为C语言的关键字,作用是为一种数据类型定义一个新名字.这里的数据类型包括内部数据类型(int,char等)和自定义的数据类型(struct等). 在编程中使用typedef目的一般有两个,一个是给变量一个易记且意义明确的新名字,另一个是简化一些比较复杂的类型声明. 至于typedef有什么微妙之处,请你接着看下面对几个问题的具体阐述. 2. typedef & 结构的问题 当用下面的代码定义一个结构时,编译器

结构体简单应用

1 //定义一个结构体其中包括: 职工号.职工名.性别.年龄.工资.地址.  2 //按结构体类型定义一个结构体数组, 从键盘输入每个结构体元素所需的数据, 3 //然后逐个输出这些元素的数据(可设数组只有三个元素). 4 5 //2017.3.5 6 #include <stdio.h> 7 #include <stdlib.h> 8 #define N 10 9 struct Employee 10 { 11 int Enum;//职工号 12 char Ename[100];

结构体的基础知识及存储分配

一.结构体的访问 1.结构体成员的的直接访问,如下结构体: struct  A{ int a; long *b; char c[20]; }; struct A   com; 结构体成员通过操作符"."访问,表达式com.a的结果是个数组名,可以把它使用在任何可以使用数组名的地方,com.a[4],将选择一个数组元素. 2.结构体成员的间接访问 struct A *p; 可以使用(*p).a访问结构体成员,但这种形式有点不简洁所以使用操作符"->"来访问结构体

c/c++ qsort 函数 结构体简单使用(1)

1 #include <stdio.h> 2 #include <string.h> 3 #include <stdlib.h> 4 5 typedef struct student { 6 char *name; 7 }; 8 9 void scan(student stu[], int &n){ 10 char str[1024]; 11 scanf("%d", &n); 12 for(int i = 0; i < n; +

C/C++ 结构体 简单输入输出

1 #include <stdio.h> 2 #include <stdlib.h> 3 4 struct student{ 5 int num; 6 char str[20]; 7 double dec; 8 }; 9 10 11 int main(){ 12 13 struct student stu; 14 15 scanf("%d%s%lf", &stu.num, stu.str, &stu.dec); 16 printf("%

C语言之结构体(2)

无意侵权:http://www.cnblogs.com/zhouxuanyu/p/4514754.html 再识C中的结构体 在前面认识C中的结构体中我介绍了结构体的基础知识,下面通过这段代码来回顾一下: 1 #include<stdio.h> 2 #define LEN 20 3 4 struct Student{ //定义结构体 5 char name[LEN]; 6 char address[LEN]; 7 int age; 8 }; 9 10 int main(int argc, ch

黑马程序员— C语言基础之结构体、枚举、预处理、typedef的使用

------Java培训.Android培训.iOS培训..Net培训.期待与您交流! ------- 本章我们主要来学习之前所学的复杂数据类型中的同样也很重要的结构体和枚举的知识,以及C语言中的预处理,typedef的使用,简单介绍一下static和extern等一些比较杂的知识.在开始本章的新知识学习之前首先我们来学习一下根据变量的作用域的不同C语言一般把变量分为两种,局部变量和全局变量.下面我们来分别比较和体会一下这两种不同的变量类型: 根据变量的作用域,可以分为: 1. 局部变量: a.

C#学习笔记之结构体

1.概述 结构是一种与类相似的数据类型,不过它较类更为轻量,一般适用于表示类似Point.Rectangle.Color的对象.基本上结构能办到的类全都能办到,但在某些情况下使用结构更为合适,后面会有提到. 结构具有以下特点: 结构可以实现接口. 结构可以声明带参数的构造函数. 结构不能声明默认构造函数(没有参数的构造函数)或析构函数. 结构是值类型,而类是引用类型. 实例化结构体时可以不使用new运算符. 结构类型是不可抽象.隐式密封的,故不能使用abstract和sealed修饰符. 在结构