C言語学習の最初の構造

  • 一般的な建設タイプ:
  • 配列、構造体、共用体。
  • 構造の役割:
  • 構造体を使用して、さまざまなデータ型のデータを管理できます。
  • 疑似コードは次のように言います:
struct 类型名{
    
    
	数据类型1 成员1;
	数据类型2 成员2;
	数据类型3 成员3;
	.
	.
	.
	数据类型n 成员n;
};
  • 構造の特徴:
  • すべてのメンバーは変数です。
  • メンバーはセミコロンで区切られます。
  • メモリ空間へのメンバーの保存は継続的です。
  • 構造体変数は相互に直接割り当てることができます。
  • 構造体変数と構造体配列の形式を定義します。
	struct 结构体类型名 结构体变量名;
	struct 结构体类型名 结构体数组名[下标];
  • 構造体アクセスメンバーの形式:
	结构体变量名.成员名;
	结构体指针->成员名;
  • サンプルコード:
#include <stdio.h>
#include <stdlib.h>
#define N 5

typedef struct K_Data
{
    
    
    short a;
    int b;
    char *s;
    int k[N];
    

}my_data;


int main(int argc, char const *argv[])
{
    
    
   struct K_Data k1;
   my_data k2;

   k1.a = 99;
   k2.b = 100;

   printf("k1.a = %d,k2.b = %d\n",k1.a,k2.b);

   puts("----------------------------------------------------------");


   my_data k3;
   k3.s = "ABAB";

   printf("%s\n",k3.s);

   puts("----------------------------------------------------------");

   my_data k4;
   k4.k[0] = 1;
   k4.k[1] = 2;
   k4.k[2] = 3;
   k4.k[3] = 4;
   k4.k[4] = 5;

   for(int i = 0; i < N; i++){
    
    


          printf("k4.k[%d] = %d ",i,k4.k[i]);

   }
   puts("");

   puts("----------------------------------------------------------");

   struct K_Data *k5 = (struct K_Data *)malloc(sizeof(struct K_Data));

   printf("k5 = %p\n",k5);

   k5->a = 666;

   printf("k5->a = %d\n",k5->a);

   free(k5);
   k5 = NULL;

   printf("k5 = %p\n",k5);

   puts("----------------------------------------------------------");


   my_data *k6 = (my_data *)malloc(sizeof(my_data));

   printf("k6 = %p\n",k6);

   k6->a = 999;

   printf("k6->a = %d\n",k6->a);

   free(k6);
   k6 = NULL;

   printf("k6 = %p\n",k6);

   puts("----------------------------------------------------------");

   struct K_Data *k7 = &k1;

   k7->a = 555;

   printf("k7->a = %d\n",k7->a);


   return 0;
}
  • 操作結果:
k1.a = 99,k2.b = 100
----------------------------------------------------------
ABAB
----------------------------------------------------------
k4.k[0] = 1 k4.k[1] = 2 k4.k[2] = 3 k4.k[3] = 4 k4.k[4] = 5 
----------------------------------------------------------
k5 = 0x55877264c670
k5->a = 666
k5 = (nil)
----------------------------------------------------------
k6 = 0x55877264c670
k6->a = 999
k6 = (nil)
----------------------------------------------------------
k7->a = 555

おすすめ

転載: blog.csdn.net/qq_41878292/article/details/132502317
おすすめ