1.结构体因为在实际问题中,一组数据往往有很多种不同的数据类型。例如,登记学生的信息,可能需要用到 char型的姓名,int型或 char型的学号,int型的年龄,char型的性别,float型的成绩。又例如,对于记录一本书,需要 char型的书名,char型的作者名,float型的价格。在这些情况下,使用简单的基本数据类型甚至是数组都是很困难的。而结构体(类似Pascal中的“记录”),则可以有效的解决这个问题。
结构体本质上还是一种数据类型,但它可以包括若干个“成员”,每个成员的类型可以相同也可以不同,也可以是基本数据类型或者又是一个构造类型。
结构体的优点:结构体不仅可以记录不同类型的数据,而且使得数据结构是“高内聚,低耦合”的,更利于程序的阅读理解和移植,而且结构体的存储方式可以提高CPU对内存的访问速度。
struct aaaaa//定义结构名称
{
char a[10];
int b;
double c;
//定义结构体内部内容
}x;返回定义值x
int main()
{
aaaaa.a[10]
aaaaa.b
aaaaa.c
//调用时结构体名.加内部内容
return 0;
}
typedef struct x//定义结构名称
{
char a[10];
int b;
double c;
//定义结构体内部内容
}x;返回定义值x
int main()
{
x=aaaa//定义结构体名称
aaaaa.a[10]
aaaaa.b
aaaaa.c
//调用时结构体名.加内部内容
return 0;
}
2.静态遍历static
1、static是一个修饰符,用于修饰成员。(成员变量,成员函数)static修饰的成员变量 称之为静态变量或类变量。
2、static修饰的成员被所有的对象共享。
3、static优先于对象存在,因为static的成员随着类的加载就已经存在。
4、static修饰的成员多了一种调用方式,可以直接被类名所调用,(类名.静态成员)。
5、static修饰的数据是共享数据,对象中的存储的是特有的数据。
3.声明变量extern
声明和定义
既然提到extern声明变量,那我们就必须搞清楚声明和定义的区别。
这里我们将普通数据变量和函数统称变量。从内存分配角度来说,声明和定义的区别在于声明一个变量不会分配内存,而定义一个变量会分配内存。一个变量可以被声明多次,但是只能被定义一次。
4.const定义
const修饰的数据类型是指常类型,常类型的变量或对象的值是不能被更新的。在C语言中const修饰的量为一个常变量不是常量