结构体
#define _CRT_SECURE_NO_WARNINGS
#include <stdio.h>
#include <stdlib.h>
struct student {
//结构体的字节数因为对齐与理论值不一致
int no;
char name[20];
char sex;
}; // 结构体类型声明,注意最后一定要加分号
int main() {
/// 1003"mama"'m'
/// 1008"Mike"'f'
/// 1009"Math"'f'
struct student s = { 1001, "lele", 'm'};
//struct student sarr[3];
int i;
printf("%d %s %c", s.no, s.name, s.sex);
//for (int i = 0; i < 3; i++)
//{
// scanf("%d%s%c", &sarr[i].no, &sarr[i].name, &sarr[i].sex);
//}
//for (int i = 0; i < 3; i++)
//{
// printf("%d%s%c", sarr[i].no, sarr[i].name, sarr[i].sex);
//}
return 0;
}
结构体指针【指针偏移】
#define _CRT_SECURE_NO_WARNINGS
#include <stdio.h>
#include <stdlib.h>
struct student {
//结构体的字节数因为对齐与理论值不一致
int no;
char name[20];
char sex;
}; // 结构体类型声明,注意最后一定要加分号
int main() {
struct student s = {100, "Lizhilong", 'F'};
struct student* p;
struct student sarr[3] = { 101, "lili", 'F', 103, "huahua", 'm', 105, "Gogo", 'f' };
p = &s;
//注意运算符的优先级 结构体访问 . 大于 -> 大于 * 解引用运算符
//printf("%d %s %c", (*p).no, (*p).name, (*p).sex);
//printf("%d %s %c", (*p).no, (*p).name, (*p).sex);
int no;
p = sarr;
printf("----------------------------\n");
no = (p->no)++;
printf("num=%d, p->num=%d\n", no, p->no);
no = (p++)->no;
//no = (p++)->no;
printf("num=%d, p->num=%d\n", no, p->no);
return 0;
}