王老师 结构体 第一讲

来源:互联网 发布:阿里云 王坚 哭 编辑:程序博客网 时间:2024/04/28 17:51

一种数据类型,由多个分量构成,共同描述一个对象.

声明语法:

struct 类型名

{

 分量类型1 分量名1;

 ...

 分量类型n 分量名n;

};

结构型变量定义: struct 结构类型名 变量名;

分配内存: 按结构定义的顺序,分配各个分量,可能有空白区.

示例函数代码:

#include "stdio.h"

/*
* 结构体:日期类型
*/
struct date
{
 int y, m, d;
};

/*
* 结构体:学生
*/
struct student
{
 int id;
 char name[20];
 struct date birthday;
};

/*
* 复数
*/
struct complex
{
 int real;
 int imaginary;
};

complex add(complex a, complex b)
{
 a.imaginary += b.imaginary;
 a.real += b.real;
 return a;
}

complex add(complex * a, complex * b)
{
 a->imaginary += b->imaginary;
 a->real += b->real;
 return *a;
}

void main()
{
 /*
 * 测试一下sizeof函数
 */
 int x = 3;
 printf("%d/n", sizeof(x));
 printf("%d/n", sizeof(x = 4));
 printf("%d/n", x);

 /*
 * 使用struct
 */
 struct complex a, b, c;
 a.real = 1;
 a.imaginary = 2;

 b.real = 1;
 b.imaginary = 3;

 c = add(a, b);
 printf("%d, %d/n", a.real, a.imaginary);
 printf("%d, %d/n", c.real, c.imaginary);
 
 c = add(&a, &b);
 printf("%d, %d/n", a.real, a.imaginary);
 printf("%d, %d/n", c.real, c.imaginary);
}