NDK启航篇——C语言基础(结构体)

2020-04-01  本文已影响0人  爺珍爱那颗心
ndk
NDK启航篇——C语言基础
NDK启航篇——C语言基础(指针)
NDK启航篇——C语言基础(函数指针)
NDK启航篇——C语言基础(内存分配)
NDK启航篇——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,%d\n",m1.name,m1.age);
  getchar();
}

结构体的写法

 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,%d\n",m1.name ,m1.age);
 printf("%s,%d\n",(*p).name ,(*p).age);
//"->"是"(*p)."的简写
 printf("%s,%d\n",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,%d\n",p -> name ,p -> age);
}
②
 int i = 0;
 for(;i<2;i++){
  printf("%s%d\n",mans[i].name,mans[i].age);
}
 struct Man *p = &m1;
 printf("%s,%d\n",m1.name ,m1.age);
 printf("%s,%d\n",(*p).name ,(*p).age);
//"->"是"(*p)."的简写
 printf("%s,%d\n",p -> name ,p -> age);
 getchar();
};

结构体大小(字节对齐)

struct Man{
  int age;
  double weight;
};
void main(){
  struct Man m1 = {10,20.1};
  printf("%d,%#x\n",sizeof(m1),&m1);
  getchar();
}

结构体的知识点有点多但其实并不难,今天就先写到这里明天进续写结构体剩下的东西,欲速则不达,慢慢来不着急。

上一篇下一篇

猜你喜欢

热点阅读