结构变量
1.结构变量
1.1 结构变量的声明
例如:
struct student {
int id;
char name;
int score;
} part1 ,part2;
结构变量声明如此,其中的part1,part2是具有这样结构的两个变量,
part1,part2可以放在下面语句定义,但华括号后必须有分号表明结构
变量的声明。
1.2 结构变量的初始化
struct student {
int id;
char name;
int score;
} part1 = {2000,“Li”,85},
part2 = {2001,“Wang”,90};
类似变量part1,part2可以在后面语句定义
part1 = {2000,“Li”,85}等价于part1{.id = 2000,.name = "Li", .score = 85}
1.3 对结构的操作
输出输入 printf("part1 id: %d",part1.id);
printf("part2 score: %d",part2.score);
scanf("%s",&part1.name);
可以用 . 来指定变量中的成员来进行操作
part1.id++;
• 要访问整个结构,直接⽤结构变量的名字
• 对于整个结构,可以做赋值、取地址,也可以 传递给函数参数
• p1 = (struct point){5, 10}; // 相当于p1.x = 5; p1.y = 10;
• p1 = p2; // 相当于p1.x = p2.x; p1.y = p2.y;
数组⽆法做这两种运算
2 结构指针,结构与函数
2.1 结构指针
struct student *ppart1 = &part1;
*(ppart1).id = 5可以用->表示,ppart1-> = 5;
这就定义了一个结构指针
2.2 结构与函数
在函数中改变main函数中传给函数的值,函数中对结构变量的值不改变;
如果传入的是结构指针,对函数中结构变量值改变,main函数中的结构变量能改变;