NDK启航篇——C语言基础(结构体)---longzeqiu
今天来写一下结构体什么是结构体?结构体是一种构造数据类型把不同的数据类型整合起来成为一个自定义的数据类型 与Java中的类相似是C中最复杂的数据类型结构体的初始化方式①声明的同时进行赋值②先声明,声明之后赋值//尖括号代表系统类库,std表示标准,io表示输入输出 引入标准输入输出
#include<stdio.h>
//lib表示类库 引入标准类库
#include<stdlib.h>
struct Man{
char* name;
int age;
int (*func)();
};
void main(){
//初始化结构体的变量
//①声明的同时进行赋值
struct Man m = {"TOM",21};
//②先声明
struct Man m1 ;
//声明之后赋值
m1.age = 20;
m1.name = "JERRY";
printf("%s,%dn",m1.name,m1.age);
getchar();
}结构体的写法struct 名字 {
···
};struct 名字 {
···
}m1,m2("TOM",10);//结构体变量名struct 名字 {
···
}名字;
//取别名
typedef int Age;匿名结构体作用:控制结构体变量的个数,相当于单例 struct{
char name[10];
int age;
}m1,m2;结构体嵌套struct Teacher{
char name [10];
};
struct Student{
char name [20];
int age;
struct Teacher t;
};
void main(){
struct Student s = {"TOM",10,{"JERRY"}};
struct Student s1;
s1.age = 10;
strcpy(s1.t.name,"JERRY");
getchar();
};什么是结构体指针结构体指针就是指向结构体地址的指针struct Man {
char name[20];
int age;
};
void main (){
struct Man m1 = {"TOM",10};
struct Man *p = &m1;
printf("%s,%dn",m1.name ,m1.age);
printf("%s,%dn",(*p).name ,(*p).age);
//"->"是"(*p)."的简写
printf("%s,%dn",p -> name ,p -> age);
getchar();
};什么是结构体指针数组结构体指针就是指向结构体地址的指针struct Man {
char name[20];
int age;
};
void main (){
struct Man mans[] = {("TOM",10),("TOM",10)};
//遍历数组①
struct Man *p = mans;
for(;p<names +2;p++){
printf("%s,%dn",p -> name ,p -> age);
}
②
int i = 0;
for(;i<2;i++){
printf("%s%dn",mans[i].name,mans[i].age);
}
struct Man *p = &m1;
printf("%s,%dn",m1.name ,m1.age);
printf("%s,%dn",(*p).name ,(*p).age);
//"->"是"(*p)."的简写
printf("%s,%dn",p -> name ,p -> age);
getchar();
};结构体大小(字节对齐)结构体变量的大小按最大的分配必须是最宽基本数据类型的整数倍 提升读取效率struct Man{
int age;
double weight;
};
void main(){
struct Man m1 = {10,20.1};
printf("%d,%#xn",sizeof(m1),&m1);
getchar();
}结构体的知识点有点多但其实并不难,今天就先写到这里明天进续写结构体剩下的东西,欲速则不达,慢慢来不着急。
---来自腾讯云社区的---longzeqiu

微信扫一扫打赏
支付宝扫一扫打赏