1、首先我们打开Dev。
2、我们给这个结构体取个名字叫student。
3、然后我们添加变量。
4、给结构体类型指针p申请堆空间。
5、使用for循环给结构体赋值。
6、在通过for循环打印输出,这样就完成就结构体的基本创建,结尾不要忘了使用free(p);释放我们申请的堆空间。
结构体类型变量的定义与其它类型的变量的定义是一样的,但由于结构体类型需要针对问题事先自行定义,所以结构体类型变量的定义形式就增加了灵活性,共计有三种形式,分别介绍如下:
1) 先定义结构体类型,再定义结构体类型变量:
struct stu / *定义学生结构体类型* /
{
char name[20]; / * 学生姓名* /
char sex; / * 性别* /
long num; / *学号* /
float score[3]; / * 三科考试成绩* /
};
struct stu student1,student2;/ * 定义结构体类型变量* /
struct stu student3,student4;
用此结构体类型,可以定义更多的该结构体类型变量。
2 ) 定义结构体类型同时定义结构体类型变量:
struct data
{
int day;
int month;
int year;
} time1,time2;
也可以再定义如下变量:
struct data time3,time4;
用此结构体类型,同样可以定义更多的该结构体类型变量。
3) 直接定义结构体类型变量:
struct
{
char name[20]; / *学生姓名* /
char sex; / *性别* /
long num; / *学号* /
float score[3]; / *三科考试成绩* /
} person1,person2; / *定义该结构体类型变量* /
该定义方法由于无法记录该结构体类型,所以除直接定义外,不能再定义该结构体类型变量。
C99标准中有算数的数据类型定义,需要包含complex.h头文件,ANSI C没有,需要自己定义。
你可以自己定义一个结构体
struct complex
{
int real;
int image;
}
real记录实部,image记录虚部
刚才查了下VC的math.h
#ifndef _COMPLEX_DEFINED
struct _complex {
double x,y; /* real and imaginary parts */
} ;
#if !__STDC__ && !defined (__cplusplus)
/* Non-ANSI name for compatibility */
#define complex _complex
#endif
#define _COMPLEX_DEFINED
#endif
所以你可以直接用complex
struct p
{
char c;
double x,y;
} num[700];
c为+、-、*、/
x为复数的实部,y为复数虚部
num为数组。用法即num[].c num[].x num[].y