类型设计完成后,其作用和基本类型作用一样
struct 类型名 变量名;
结构体的普通变量通过".“访问其成员
struct 类型名 *指针变量名;
结构体的指针变量通过”->"访问其成员
结构体作为参数传递时,总是传指针,不传结构体本身
typedef 旧类型 新类型;
1.起别名,简写
2.和问题类型相关这里是引用
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <time.h>
typedef unsigned long long int uint64;
typedef int * Pint;
typedef int Arr[10];
struct A
{
char a;
int b;
};
typedef struct A A;
typedef struct B
{
char a;
int b;
}B;
int main()
{
unsigned long long int a = 10;
uint64 b = 20;
int d = 100;
Pint c = &d;
Arr e;//int数组
A sa;
time_t t1 = time(NULL);
size_t;
malloc();
printf("%d\n",sizeof(e));//
return 0;
}
struct A
{
char a;
int b;
};
int main()
{
struct A sa;
//A sc;//c++可以
unsigned long long a = 10;
return 0;
}
struct D
{
char a;
int a;//error
};
//输出Student的信息
//void Show(struct Student stu)//传参 ,不好,浪费空间
void Show(struct Student *p)
{
printf("%s,%d\n",p->name,p->age);
}
//输出Student数组的内容
void Show(struct Student *arr,int len)
{
//for(int i=0;i<sizeof(arr)/sizeof(arr[0]);i++)//error
for(int i=0;i<len;i++)
{
printf("%s,%d\n",arr[i].name,arr[i].age);
}
}
int main()
{
struct Student stu1 = {"liubei",23};
Show(&stu1);
struct Student arr[3] = {"caocao",20,"liubei",21,"sunquan",18};
arr[1].age = 23;
//输出arr的所有内容
for(int i=0;i<sizeof(arr)/sizeof(arr[0]);i++)
{
printf("%s,%d\n",arr[i].name,arr[i].age);
}
Show(arr,sizeof(arr)/sizeof(arr[0]));
return 0;
}
int main()
{
struct Student stu1;
strcpy(stu1.name,"刘备");
struct Student *ps = &stu1;
ps->age = 23;
return 0;
}
struct Student//设计学生结构体
{
char name[20];
int age;
};//类型设计完成
//结构体指针
int main()
{
int a = 10;
int *p = &a;
struct Student stu1 = {"sunquan",18};
struct Student *p1 = &stu1;//定义结构体指针
//通过p1将年龄改为19
p1->age = 19;//(*p1).age = 19;
//通过p1将姓名改为"张飞"
strcpy(p1->name,"张飞");
printf("%s,%d\n",p1->name,p1->age);
return 0;
}
//结构体普通变量
int main()
{
int a = 10;
int b;
int arr[10];
int *p = &a;
struct Student stu1;//随机值
struct Student stu2 = {"liubei",20};
stu2.age = 23;
//stu1 改为"曹操",24
//stu1.name = "caocao";
strcpy(stu1.name,"曹操");
stu1.age = 24;
//输出stu1的信息
printf("%s,%d\n",stu1.name,stu1.age);
return 0;
}