1. 为甚要用结构体?
第一点:
许多人都认为C语言只是面向过程的语言且不能面向对象,这是对C语言最大的误解,结构体就是C语言面向对象的基础和重要工具,C++相对于C语言,也只是在C语言结构体、链表等的基础上进行了一系列的深化,所以面向过程与面向对象不是一种语言的特性,而更多的是一种思想,只不过C语言是对一种面向对象不太友好的语言。
第二点:
结构体是数据类型的一种扩充,相对于数组来说,结构体不像数组那样只包含了一种基本数据类型,结构体里面包含的基本数据类型更加丰富,是自定义的一种数据类型。另外,数组的增删不方便,而结构体的链表对增删显然是轻而易举。
2. 结构体的定义声明与使用
定义:
关键字struct + 变量名+{};
例如:
struct student{
char name[128];
int age ;
};
声明:
类比基本数据类型的声明,如,int data = 10; 它是这样的格式: 数据类型关键字 + 变/常 量名称 + 初始值 ,结构体的声明也是类似,关键字是struct xxx例如:
方法一:
//类型 名称 值
struct student Stu1 = {“WangXiaoming”,18};
方法二:
struct student stu1 = {
.name = “WangXiaoming”,
.age = 18
};
//这种方法可以不用对这个结构体全部进行初始化
访问:点运算
例如:
stu1.age = 18;
strcpy(stu1.name ,“WangXiaoming”);
printf(“stu1 name:%s\n”,stu1.name);