C语言平面几何1-数据类型的定义

数学中的部分概念在C语言中的定义如下(注:为了与数学一致,有些参数使用了大写):
/* 点 */
typedef struct point
{
	double x;
	double y;
}Point;

/* 向量 */
typedef Point Vector;

/* 线段AB */
typedef struct segment
{
	Point A;
	Point B;
}Segment;

/* 直线
 *	直线方程一般式:Ax+By+C=0
 */
typedef struct line
{
	double A;
	double B;
	double C;
}Line;

/* 三角形ABC */
typedef struct triangle
{
	Point A;
	Point B;
	Point C;
}Triangle;

/* 边平行于坐标轴的矩形 */
typedef struct rectangle
{
	double xmin;
	double ymin;
	double xmax;
	double ymax;
}Rectangle;

/* MBR:最小包容矩形 */
typedef Rectangle MBR;

/* 圆 */
typedef struct circle
{
	Point centre;
	double radius;
}Circle;


用某种数据结构定义的变量在赋值时同基本数据类型一样,直接赋值即可,不必对结构中的所有成员一一赋值。

例如,定义两个变量Point A, B,当将B的值赋给A时,只需A=B,这等价于A.x=B.x;A.y=B.y;
但指针变量就不同了,如Point *A, *B,当将B的值复制给A时,需要memcpy(A, B, sizeof(Point));或A.x=B.x;A.y=B.y;
A=B表示A指向了B指向的内存空间,即A和B指向同一空间,数据只有一份。




  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值