c语言-自定义数据类型



  • 结构体
  1. 声明:

struct Student
{ int number;
   char name[19];
};
         2、定义:

struct Student student;

                  一般是:
<pre name="code" class="cpp">struct Student   //也可以不指定类型名Student
{ int number;
   char name[20];
}stu;
 

注意:计算机对内存的管理是以字为单位的,如果一个字中只存放一个字节,但改字的其他三个字节不会存放数据,而是从其他字开始存放数据。所以sizeof得到的长度是24,4的整数倍

        3、初始化:

可以定义的时候初始化,或者之后初始化

struct Student   //也可以不指定类型名Student
{ int number;
   char name[20];
}stu={1,“aaa”};
stu.number=2;



结构体数组:

struct Student   //也可以不指定类型名Student
{ int number;
   char name[20];
}stu1[3];

结构体指针:

    一个结构体变量的起始地址

struct Student *pt;
pt=&stu;
<pre name="code" class="cpp"><pre name="code" class="cpp">pt->number=5;
 
 链表:用指针处理链表 

struct Student   
{ int number;
   char name[20];
   struct Studen *next;
}stu;

  • 共用体:用同一段内存,存放不同类型的变量

在数据处理时,对同一段空间安排不同的用处时,用union

长度是最长的成员的长度

struct Student   
{ int number;
   char name[20];
  <span style="color:#CC0000;"> union
   {int class;
    char position[20];
    }category;</span>
}stu,stu2;


stu=p;//不能对共用体变量名赋值
p=stu;//也不能引用一个共用体变量名来得到一个值
stu=stu2;//同类型的共用体变量可以相互赋值
category.class=1;//赋值

  • 用typedef声明新类型名
  1. 声明一个新类型名的方法是:
  2. 先按定义变量的方法写成定一体,如int i;
  3. 将变量名换成类型名 ,int count;
  4. 在前面加typedef,如typedef int count ;
  5. 用新类型名去定于变量


命名一个新类型名代替结构体类型:

typedef struct  
{ int number;
   char name[20];
}Stu;
Stu stu;
Stu *p;

命名一个新类型名代替数组类型:

typedef int Mun[20];
Mun m; 

命名一个新类型名代替指针类型:

typedef char *String;
String c,s[10];

命名一个新类型名代替指向函数的指针类型:

typedef int (*point)(int)

注意:1、当不同源文件中用到同一数据类型,常用typedef声明,可以把typedef声明的一些变量放在一个文件中,在需要用到的文件中用#include包含进来。

             2、注意 typedef和define的区别




  • 0
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值