Linux C语言:结构体

1 . 结构体的声明和定义

结构体:不同类型变量数据的集合;

第一种定义方式(最常用):

#include<stdio.h>
struct weapon{
	char name[20];
	int atk;
	int price;
};//一定别忘了这个冒号;
int main{
	struct weapon weapon_1={"weapon_name",100,200};
	return 0;
}

第二种定义方式:

#include<stdio.h>
struct weapon{
	char name[20];
	int atk;
	int price;
}weapon_1; //相当于定义了一个全局变量,变量的类型是struct weapon,变量的名称是weapon_1;
int main{
	return 0}

此写法结构不够清晰,程序不利于维护;

第三种定义方式:

struct{
	char name[20];
	int atk;
	int price;
}waapon_1;

此种写法不能再定义其他名称的结构体变量;


2 . 结构体的初始化和引用

普通结构体的初始化和引用:

struct weapon weapon_1={"weapon_name",100,200};
printf("%s\n%d\n",weapon_1.name,++weapon_1.price);

结构体数组的初始化和引用:

struct weapon weapon_2[2]={{"weapon_name1",100,50},{"weapon_name2",100,200}};//里面的花括号也可以不加;
printf("%s\n%d\n",weapon_2[0].name,weapon_2[1].atk);


3 . 结构体指针

结构体变量指针:

struct weapon* w;
w=&weapon_1;
printf("name =%s\nname =%s\n",(*w).name,w->name);//same result;

结构体数组变量指针:

struct weapon* p;
p = weapon_2;
printf("%s\n",p->name);

p++;// equal weapon_2 +1 指向weapon_2[1];
printf("%s\n",p->name);
发布了30 篇原创文章 · 获赞 36 · 访问量 684

猜你喜欢

转载自blog.csdn.net/qq_42745340/article/details/103953624
今日推荐