<output id="qn6qe"></output>

    1. <output id="qn6qe"><tt id="qn6qe"></tt></output>
    2. <strike id="qn6qe"></strike>

      亚洲 日本 欧洲 欧美 视频,日韩中文字幕有码av,一本一道av中文字幕无码,国产线播放免费人成视频播放,人妻少妇偷人无码视频,日夜啪啪一区二区三区,国产尤物精品自在拍视频首页,久热这里只有精品12

      C語言初級階段6——自定義數據類型

      闡述

      1.構造數據類型:用戶自己建立的數據類型(自定義數據類型)。

      2.C語言中的自定義數據類型:數組類型、結構體類型、共用體類型和枚舉類型。

      結構體

      1.定義:C語言允許用戶根據自己建立的由不同類型數據組成的組合型的數據類型,我們把它稱之為結構體(struct)。

      2.作用:

      結構體能根據用戶需要來更方便的儲存各種各樣的信息。

      3.結構體類型的聲明和結構體變量的定義

      聲明一個結構體類型的一般形式為:

      struct 結構體類型名{成員列表};

      #include<stdio.h>
      #include<string.h>
      //結構體的定義:struct
      /*struct 結構體名
      {
      結構成員;
      }
      */
      //怎么訪問定義的結構體變量里面的成員  變量名.成員
      //定義了一個名字叫做Student的結構
      struct Student
      {
      	int ID;
      	char name[10];
      	float score;
      };
      Student ab = { 2,"李四",90.9f };
      //Student ab={第一個賦值給第一個定義的成員,第二個值賦值給第二個定義的成員...}
      //typedef給類型取別名     #define Π 3.14 宏定義,宏的原理表示替換。
      //typedef int 整型;
      typedef struct Hero
      {
      	int ATT;
      	char name[10];
      	int Def;
      }hero;
      //定義結構體的時候沒有寫結構名,那么typedef給這個結構體取別名。
      typedef struct
      {
      	int x;
      	int y;
      }STT;
      /*定義結構體的時候沒寫結構名,也沒有用typedef取別名,
      但是在}后面寫了標識符,那么這幾個標識符就是我們定義的該結構的變量。
      那么這幾個標識符就是我們定義的該結構體的變量*/
      struct
      {
      	int m;
      	int n;
      }s1,s2,s3[10];
      //結構體的嵌套
      struct A
      {
      	int f;
      	struct
      	{
      		int g;
      	}h;
      };
      struct CC
      {
      	struct A f;
      };
      //結構體的內存計算方法
      struct One
      {
      	int a;
      	int b;
      	char c;
      };
      //內存對齊標準:以該結構體中最大的基本數據類型所占的內存進行對齊
      struct Two
      {
      	int a;
      	char b[10];
      	float c;
      };
      struct Three
      {
      	double a;
      	int b;
      	char c[10];
      };
      struct Four
      {
      	int a;
      	char b[10];
      	char c;
      	double d;
      };
      /*當結構數據成員前面有更大的數據類型所站內存,先按照順序進行最大的數據類型進行內存分配進行對齊。
      如果在最后還有比前面更大的基本數據類型所占內存,那么就按照更大的進行對齊。*/
      struct Five
      {
      	char a;
      	int b;
      	char c[10];
      	double d;
      };
      int main() {
      	printf("One的字節數為:%d\n", sizeof(One));
      	printf("Two的字節數為:%d\n", sizeof(Two));
      	printf("Three的字節數為:%d\n", sizeof(Three));
      	printf("Four的字節數為:%d\n", sizeof(Four));
      	printf("Five的字節數為:%d\n", sizeof(Five));
      	CC cc;
      	cc.f.h;
      	A fff; 
      	fff.h.g;
      	hero arr[4] = {
      		{10,"劍圣",5},
      		{5,"蓋倫",10},
      		{0,"法師",0}
      	};
      	for (int i = 0; i < 3; i++)
      	{
      		printf("%d\t%s\t%d\n", arr[i].ATT, arr[i].name, arr[i].Def);
      	}
      
      	s3[0] = { 1,2 };
      	s1 = { 1,2 };
      	STT tt;
      	hero YX1 = { 10,"劍圣",5 };
      	int a = 10;
      	int b = 20;
      	Student aa = { 1,"張三",60.1f};
      	aa.ID = 10;
      	strcpy(aa.name,"張三");
      	aa.score = 1.6f;
      	//aa.name="張三";這是不可以的。
      	return 0;
      }
      

      共用體

      1.關鍵字:union

      2.有時候想用同一段內存單元存放不同類型的變量。如:把一個整型變量、浮點型變量和字符型變量放在同一個內存單元中,它們在內存中所占字節數不同,但是共用同一段內存地址,也就是共用體。

      3.也就是所有數據成員共用同一段內存的數據類型稱為共用體,也稱其為聯合體。

      4.共用體和結構體的聲明、定義和成員變量引用的語法是類似的,只不過關鍵字不一樣,以及所占內存大小有區別而已。

      #include<stdio.h>
      #include<string.h>
      /*內存儲存:共用體所有的成員共用里面最大的成員的空間,在同一個時刻只能存儲一個成員的值。
      只算最大的成員所占的內存,要以共用體中最大的基本數據類型所占內存進行對齊。*/
      union Arr
      {
      	int c;
      	char a[10];
      	float b;
      };
      int main() {
      	printf("Arr的字節數為:%d\n", sizeof(Arr));
      	return 0;
      }
      

      枚舉類型

      1.關鍵字:enum

      #include<stdio.h>
      #include<string.h>
      /*枚舉類型內存大小:就是int類型的所占內存大小
      枚舉的元素會有一個默認的值,是整數,第一個元素默認的值為0  第n個元素的值是第n-1個元素的值+1*/
      enum Arr1
      {
      	left,
      	right,
      	up,
      	down
      };
      int main() {
      	printf("Arr1的字節數為:%d\n", sizeof(Arr1));
      	return 0;
      }
      
      #include<stdio.h>
      #include<string.h>
      #include<conio.h>
      enum {up='w',down='s',right='d',left='a' };
      int main() {
      	while (1)
      	{
      		switch (_getch()) {
      		case up:
      			printf("你按了上這個鍵\n");
      			break;
      		case down:
      			printf("你按了下這個鍵\n");
      			break;
      		case left:
      			printf("你按了左這個鍵\n");
      			break;
      		case right:
      			printf("你按了右這個鍵\n");
      			break;
      		}
      	}
      	return 0;
      }
      
      #include<stdio.h>
      #include<string.h>
      #include<conio.h>
      typedef enum {up='w',down='s',right='d',left='a' } Arr3;
      int main() {
      	Arr3 a;
      	printf("%d\n", up);
      	return 0;
      }
      
      #include<stdio.h>
      #include<string.h>
      #include<conio.h>
      typedef enum {up='w',down='s',right='d',left='a' } Arr3;
      enum Arr4
      {
      	a,b,c,d,e,f
      };
      int main() {
      	printf("%d\n", up);
      	printf("%d\n%d\n%d\n%d\n%d\n%d\n", a, b, c, d, e, f);
      	return 0;
      }
      
      #include<stdio.h>
      #include<string.h>
      #include<conio.h>
      typedef enum {up='w',down='s',right='d',left='a' } Arr3;
      enum Arr4
      {
      	a,b,c=10,d,e,f
      };
      int main() {
      	printf("%d\n", up);
      	printf("%d\n%d\n%d\n%d\n%d\n%d\n", a, b, c, d, e, f);
      	return 0;
      }
      
      posted on 2022-11-06 09:05  George-Juddson  閱讀(249)  評論(0)    收藏  舉報
      主站蜘蛛池模板: 人妻熟妇乱又伦精品无码专区| 久久96热在精品国产高清| 左权县| 国产精品中文字幕第一区| 成人无码午夜在线观看| 少妇激情一区二区三区视频小说| 亚洲偷自拍国综合| 精品国产午夜福利理论片| 国产成人AV一区二区三区无码| 国产精品自在线拍国产手机版| 黑巨人与欧美精品一区| 亚洲欧美中文日韩V日本| 欧美成人精品手机在线| 色综合色综合色综合频道| 挺进粗大尤物人妻中文字幕| 在线播放亚洲成人av| 在线 欧美 中文 亚洲 精品| av中文字幕国产精品| 少妇极品熟妇人妻无码| 久久亚洲日本激情战少妇| 亚洲国产精品一区二区第一页| 亚洲av综合色区无码专区| 国产乱子伦视频在线播放| 国产精品视频一区二区不卡| 日本中文字幕不卡在线一区二区| 18禁无遮拦无码国产在线播放| 亚洲国产精品综合一区二区| 久久精品免视看国产成人| 国产一区二区三区18禁| 亚洲中文字幕日产无码成人片| 少妇被粗大的猛烈xx动态图| 亚洲欧洲一区二区天堂久久| AV极品无码专区亚洲AV| 亚洲理论在线A中文字幕| 国产老头多毛Gay老年男| 公与淑婷厨房猛烈进出视频免费 | 中文无码热在线视频| 悠悠色成人综合在线观看| 久久精品国产99久久六动漫| 久久96热在精品国产高清| 熟女亚洲综合精品伊人久久|