C语言结构体的使用说明

C语言结构体的使用说明

结构体是用来创建用户自己的数据类型的一种方式,类似于现在比较流行的面向对象思想中的类。在C语言中结构体声明的位置确定了它的使用范围,如果一个结构体声明在一个函数中,那么他只能在这个函数内部使用,这样我们定义结构体的用处不是很大,所以一一般把结构体定义在程序的最上面

#include<stdio.h>
//声明一个日期类型的结构体
struct Date{
		int year;
		char *day;
		int month;
	};

int main(int argc,char const *argv[])
{
	
	struct Date today;
	today.month=12;
	today.year=2019;
	today.day="Saturday";
	
	printf("%d-%d-%s",today.year,today.month,today.day);
}

声明结构的三种形式:

//第一种形式(比较常见):
struct point
{
	int x;
	int y;
}
struct point p1,p2;
//第二种形式(比较少见)
struct
{
	int x;
	int y;
} p1,p2;

//第三种形式(很常见)
struct point
{
	int x;
	int y;
} p1,p2;

结构的初始化

struct point
{
	int x;
	int y;
};
//第一种初始化方法,直接用花括号赋值
struct point p1={1,2};
//第二种
struct point p2;
p2.x=1;
p2.y=2;
//第三种
struct point p3={.x=1,.y=2};


结构的运算

  • 要访问整个结构,直接用结构变量的名字
  • 对于整个结构,可以做赋值,取地址,也可以作为函数参数传递
p1=(struct point){3,4};//相当于p1.x=3;p1.y=4;
  • p1=p2;//相当于p1.x=p2.x;p1.y=p2.y;

结构体在函数之间传值

#include<stdio.h>

struct point
{
	int x;
	int y;
};

struct point GetPoint(struct point p);

int main(int argc,char const *argv[])
{
	struct point p1;
	struct point newPoint={1,2};
	p1=GetPoint(newPoint);
	printf("x=%d\ty=%d",p1.x,p1.y);
	return 0;
}

struct point GetPoint(struct point p)
{
	struct point temp;
	temp.x=p.x;
	temp.y=p.y;
	return temp;
 } 

指向结构的指针

struct date
{
	int month;
	int year;
	int day;
} mydate;
strcut date *p=&mydate;//声明一个date类型的指针,指向结构变量mydate
//下面的两个语句是等价的,都实现了给结构变量mydate的month成员赋值的操作
(*p).month=12;
p->month=12;
  • 用->符号来表示指针所指的结构变量中的成员
发布了65 篇原创文章 · 获赞 8 · 访问量 3251

猜你喜欢

转载自blog.csdn.net/yasenRK/article/details/103573582
今日推荐