您的位置:首页 > 编程语言 > C语言/C++

c语言-自定义数据类型

2014-11-08 20:54 162 查看
结构体

声明:

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声明新类型名

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

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

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的区别
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: