首页  >  编程教程  >  C语言教程  >  C语言struct结构体的定义和使用

C语言struct结构体的定义和使用

点击打开在线编译器,边学边练

前面我们已经讨论过字符数组与字符串,字符指针也可以指向一个字符串,可以用字符串常量对字符指针进行初始化。例如:

char *str = "www.dotcpp.com" ;

这是对字符指针进行初始化。此时,字符指针指向一个字符串常量的首地址

结构体与数组类似,都是由若干分量组成的,与数组不同的是,结构体的成员可以是不同类型,可以通过成员名来访问结构体的元素。


结构体的定义说明了它的组成成员,以及每个成员的数据类型。定义一般形式如下:

struct 结构类型名 
{ 
    数据类型 成员名 1; 
    数据类型 成员名 2; 
    ...... 
    数据类型 成员名 n; 
};


结构的定义说明了变量在结构中的存在格式,要使用该结构就必须说明结构类型的变量。结构变量说明的一般形式如下:

struct 结构类型名称 结构变量名;


定义结构体便是定义了一种由成员组成的复合类型,而用这种类型说明了一个变量才会产生具体的实体。与说明基本数据类型的变量一样,系统会按照结构定义时的内部组成,为说明的结构变量分配内存空间。结构变量的成员在内存中占用连续的存储区域,所占内存大小为结构中每个成员的长度之和。


我们可以将变量student1说明为address类型的结构变量:

struct address student1;


虽然,结构体作为若干成员的集合是一个整体,但在使用结构时,不仅要对结构的整体进行操作,还经常要访问结构中的每一个成员。在程序中使用结构中成员的方法为:

结构变量名.成员名称


如student1.tel表示结构变量student1的电话信息。
和其他类型的变量一样,结构变量也可以进行初始化。结构初始化的一般形式如下:

struct 结构类型名 结构变量 = { 初始化数据 1, ...... 初始化数据 n };


#include<stdio.h>
#include<string.h> 
struct _INFO
{
    int num;
    char str[256];
};
int main() 
{
    struct _INFO A;
    A.num = 2014;
    strcpy(A.str,"Welcome to dotcpp.com");
    printf("This year is %d %s\n",A.num,A.str);
    return 0;
}


请亲自上机实验。



本文固定URL:https://www.dotcpp.com/course/38

第一章 C语言的过去与未来
第二章 C语言快速入门
第三章 C语言的数据类型
第四章 C语言中的基本输入输出
第五章 运算符和表达式
第六章 C语句和程序流
第七章 函数
第八章 数组
第九章 指针
第十章 复合结构
第十一章 文件操作
第十二章 预处理
第十三章 位运算
第十三章 附录
Dotcpp在线编译      (登录可减少运行等待时间)