认识结构体与声明类型(typede)(c语言)

结构体:一系列具有相同类型或不同类型的数据构成的数据集合。

定义:

struct  结构体类型名   结构体变量名

{

成员表列;

};

如:建立学生信息类型的结构体,(包括学号、姓名、性别、年龄)。

struct student st1
{
	int num;
	char name[20];
	int age;
};

成员变量赋值: st1={001,"xiaoming",20};   //聚合体初始化

结构体变量:

struct student st1  //普通结构体变量
	{
		int num;
		char name[20];
		int age;
	};
	struct student *p;   //指针结构体变量
	p=&st1;
	st1.num=001;   //结构体普通变量通过 "."(结构体成员运算符)访问它的成员
	p->num=002;   //结构体指针变量通过 "->" (指向结构体成员运算符)访问它的成员

结构体指针:指向结构体的指针。

struct student st1  //普通结构体变量
	{
	   int num;
	   char name[20];
	   int age;
	   struct student *p;   //定义一个包含自身的指针
	   //strucr student st2;  错误!strucr student类型没有定义完成,系统无法分配空间
	};

子函数修改父函数结构体的成员变量:

void Fun(struct student *a)
{
     a->num=007;
     a->name="007";
}
int main()
{
    Fun(&st1);
}

typedef : 类型定义,给类型其别名,使类型名容易记忆。容易书写。

定义:typedef  类型     其他字符(别名)

typedef unsigned long long int uint64;
typedef unsigned long int uint32;
typedef int * Pint;
typedef struct student 

{
	int num;
	char name[20];
	int age;
}st1;
int main()
{
	uint64 b = 20;   //等同于unsigned long long int b = 20;
	uint32 c = 30;   //等同于unsigned long long int b = 20;
	Pint d;   //等同于int *d;
	student st2;  //等同于struct student st2;
}

注意:与宏定义的区别。

typedef int * Pint;
#define PINT int *//字符替换

int main()
{
   Pint i,j;   //typedef int *Pint ; i,j都为int*
   PINT x,y;   //#define PINT int * ; x为int *,y为 int(int*x,y);
}



评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值