1.结构体
1.1 结构体定义
- 语法
struct 结构体名{
成员列表
};
例如:
struct Student{
char name[32];
int age;
float score;
};
1.2 定义结构体变量
- 语法
struct 结构体名 结构体变量名
例如:
struct Stuednt s1;
1.3 结构体成员引用
- 语法
结构体变量名.结构体成员名
例如:
s1.name;
printf("%s %d %f\n",s1.name,s1.age,s1.score);
1.4 结构体成员赋值
数值类型成员可以直接赋值,字符串类型变量需要使用字符串复制函数。
char s[32] = "salt";
s1.age = 18;
strcpy(s1.name,s);
s1.score = 100;
1.5 结构体赋值
结构体变量整体赋值就是给结构体所有成员一起赋值。
结构体能整体赋值,数组、字符串不能直接赋值。
struct Student s1;
struct Sudent s2;
strcpy(s1,name,"salt");
s1.age = 18;
s1.score = 100;
s2 = s1;
1.6 结构体整体初始化
- 注意:赋值数据顺序必须与结构体成员声明顺序一致。
struct Student{
char name[32];
int age;
float score;
};
struct Student s1 = {"salt",18,100};
1.7 结构体部分初始化
struct Point3D{
int x;
int y;
int z;
};
struct Point3D p = {.x = 10,.z = 20};
#include <stdio.h>
struct Point3D{
int x;
int y;
int z;
};
int main()
{
struct Point3D p = {.x=10,.z=20};
printf("x:%d y:%d z:%d\n",p.x,p.y,p.z);
struct Point3D p2 = {10,20};
printf("x:%d y:%d z:%d\n",p2.x,p2.y,p2.z);
}
2. 其他语法
2.1 定义结构体并同时定义结构体变量
struct Student{
char name[32];
int age;
float score;
}s1,s2;
2.2 定义结构体并同时定义结构体变量并赋初值
struct Student{
char name[32];
int age;
float score;
}s1 = {"salt",18,100};