结构基础知识
C的聚合数据类型(aggregate data type) 能够同时存储超过一个的单独数据.
C提供了两种类型的聚合数据类型,数组和结构.
- 数组是相同类型的元素的集合,它的每个元素是通过下标引用或指针间接访问来选择的.
- 结构也是一些值的集合,值成为它的成员(member),结构属于标量类型可以作为传递给函数的参数,它们也可以作为返回值从函数返回,相同类型的结构变量之间可以赋值,可以声明指向结构的指针,取一个结构变量的地址,也可以声明结构数组.
一些结构体的使用误区
struct
{
int a;
char b;
float c;
}
struct
{
int a;
char b;
float c;
}y[20], *z;
z = &x;//此语句是非法的使用
这两个声明被编译器当做两种不同的类型,即是它们的成员列表完全相同.因此,变量y和z的类型和x的类型不同, z = &x语句是非法的
两种不同函数参数定义的函数
定义结构体,仿照int求和函数
#include <stdio.h>
//定义复数结构体,类型重命名为complex
typedef struct
{
int real;
int imaginary;
}complex;
/*
** 类比整型的求和函数
** int sum(int a, int b);
** 函数返回值是结构体,函数参数也是结构体类型
*/
complex Sum_Complex(complex a, com