麻豆小视频在线观看_中文黄色一级片_久久久成人精品_成片免费观看视频大全_午夜精品久久久久久久99热浪潮_成人一区二区三区四区

首頁 > 學院 > 開發設計 > 正文

iOS階段學習第十天筆記(結構體)

2019-11-14 18:46:44
字體:
來源:轉載
供稿:網友

iOS學習(C語言)知識點整理

一、數據結構

1)概念:數據結構是指計算機程序中所操作的對象——數據以及數據元素之間的相互關系和運算。

2)結構體必須有struct 關鍵字修飾.

實例代碼:

 1 struct Person{ 2     char name[20]; 3     int age; 4     float height; 5 }; 6  7 int main(){ 8     struct Person Tom={"Tom",22,180};//struct Person 是數據結構 9     //Tom 是變量名10     Tom.age=33;//通過點號訪問成員變量11     PRintf("姓名=%s;年齡=%d;身高=%.2f/n",Tom.name,Tom.age,Tom.height);12     return 0;13 }

3)使用typedef 修飾結構體,與不使用typedef修飾的結構體的區別在于,typedef修飾的結構體不需要再加struct即可使用。

實例代碼:

 1 typedef struct Person{ 2     char name[20]; 3     int age; 4     float height; 5 }stPerson; 6  7 int main(){ 8     stPerson Jack={"Jack",36,178};//struct stPerson 是數據結構 9     //Jack 是變量名10     Jack.age=25;//通過點號訪問成員變量11     printf("姓名=%s;年齡=%d;身高=%.2f/n",Jack.name,Jack.age,Jack.height);12     return 0;13 }

4)結構體集合的使用 

實例代碼:

 1 int main(){ 2    //定義了一個數組,里面可以放stPerson這種數據類型 3     stPerson stu[10]={}; 4     stPerson *pstu; 5     printf("%s",stu[0].name); 6     for (int i=0; i<10; i++) { 7          sprintf(stu[i].name, "Jack%d",i); 8          stu[i].age=10+i; 9          stu[i].height=170+i;10     }11     pstu=stu;12     //(*pstu).name等價于 pstu->name;13     //pstu+i 指向里面的第i個元素14     //指針通過->去訪問指向的對象的成員變量15     int len=sizeof(stu)/sizeof(stPerson);16     for(int j=0; j<len; j++) {17     printf("姓名=%s;年齡=%d;身高=%.2f/n",(*pstu).name,(*pstu).age,  (*pstu).height);18     pstu++;19   }20  return 0;21 }

5)結構體字節對齊  #pragma pack(n)  n可為1,2,4,8,16;設置系統對齊模數,按結構所有成員中最大者和對齊模數比較,與較小者對齊

實例代碼:

 1 typedef struct 2 { 3     char ch[3];//單字節對齊 4 }aa; 5  6  typedef struct 7 { 8     char ch[3]; 9     short b;//2字節對齊10 }ab;11 12 typedef struct13 {14     char ch[3];15     short b;16     int c;//按照4字節對齊17 }ac;18 19 typedef struct20 {21     char ch[3];22     short b;23     int c;24     long l;//按照8字節對齊25 }ad;26 27 typedef struct28 {29     char ch;30     long l;31 }ae;32 33 int main()34 {35     printf("sizeof(aa)=%lu/n",sizeof(aa));//336     printf("sizeof(ab)=%lu/n",sizeof(ab));//637     printf("sizeof(ac)=%lu/n",sizeof(ac));//1238     printf("sizeof(ad)=%lu/n",sizeof(ad));//2439     printf("sizeof(ae)=%lu/n",sizeof(ae));//1640     return 0;41 }

6)枚舉  概念:一個被命名的整型常數的集合,枚舉聲明的關鍵字是 enum

 注意點:

           1、枚舉元素之間用 “,”分隔

           2、枚舉第一元素如果沒有賦值默認值為0,之后的元素依次加1

           3、枚舉是 unsigned int 類型的包裝集合。

           4、枚舉都是常量,與宏#define相似

           5、枚舉的名字不能重名

 實例代碼:

 1 enum weekday 2 { 3     Monday, 4     Tuesday, 5     Wednesday=10,//可以人為賦值,后面在此基礎+1 6     Thurday, 7     Friday=2,//后面的賦值可以比前面小 8     Saturday, 9     Sunday10 };11  12 int main()13 {14     enum weekday day= Saturday;//enum weekday 數據類型,day變量名15     printf("day=%u,sizeof(day)=%lu/n",day,sizeof(day));//結果:6,416 }

7)typedef 用法說明;typedef 老的類型 新的名字 ,給類型取個別名

實例代碼:

 1 typedef unsigned long ul; 2 typedef int *intp; 3 int add(int a,int b){ 4     return a+b; 5 } 6  7 //給這種函數指針取了一個新名字 pfunc 8 typedef int (*pfunc)(int,int); 9 int main()10 {11     ul number= 100;12     int a = 20;13     intp p = &a;14     pfunc pf = add;15     printf("number=%lu/n",number);16     printf("*p=%d/n",*p);17     printf("add=%d/n",pf(10,20));18     return 0;19 }

8)結構聯合體,一般聯合體都是二選一,即聯合體中一般只會存在兩個元素,系統在初始化時只會選擇其中一個內存較大的進行賦值。

實例代碼:

 1 typedef struct Person// Person可以省略,后面之用簡化的名字 2 { 3     char name[20];//成員變量 4     int age; 5     int height; 6     union{ 7         int stuid; 8         char workname[20]; 9     };//共享同一段內存,按情況去解析.10     //內存大小按大的計算11     //初始化的時候,按照第一個解析12 }stPerson;13  14 int main()15 {16     stPerson xiaoli={"xiaoli",18,180,97};17     stPerson xiaozhu={"kingkong",26,160,60};18     //初始化的時候,不能給最后一個成員變量賦值為字符串19     printf("sizeof(stPerson)=%lu/n",sizeof(stPerson));20     printf("name:%s,age:%d,height:%d,stuid:%d/n",xiaoli.name,xiaoli.age,xiaoli.height,xiaoli.stuid);21 22     //給名字字段賦值23     sprintf(xiaozhu.workname,"%s","kingkong");24     printf("name:%s,age:%d,height:%d,workname:%s/n",xiaozhu.name,xiaozhu.age,xiaozhu.height,xiaozhu.workname);25     return 0;26 }

 


發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 久久精品一区二区三区四区五区 | 久久91精品| 久久2019中文字幕 | 久久久精品视频网站 | 嗯~啊~弄嗯~啊h高潮视频 | 黄www片 | 欧美a级在线免费观看 | 国产免费观看av | 久久精品亚洲成在人线av网址 | arabxxxxvideos | 欧美精品电影一区二区 | 国产精品久久久久无码av | 国产午夜精品久久久久久久蜜臀 | 亚洲精品wwww | 亚洲成人夜色 | 国产精品视频一区二区三区四区五区 | 久草在线公开视频 | 成人免费毛片一 | 欧美久久久久久久久 | 黄污网站在线观看 | 久久密| 精品国产精品久久 | 免费嗨片首页中文字幕 | h视频免费看 | 男女无遮挡羞羞视频 | 圆产精品久久久久久久久久久 | 91aa.app| 精品99在线视频 | 中文字幕欧美亚洲 | 污片视频在线观看 | 国产精品一区二区三区在线看 | 一级免费| 精品中文一区 | 91成人免费 | 成人黄色小视频在线观看 | 最新中文字幕日本 | 免费在线观看一级片 | 中文字幕网在线 | 天堂成人一区二区三区 | 一本色道久久综合亚洲精品小说 | 好吊一区二区三区 |