亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

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

【學習筆記】【C語言】結構體

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

1.定義結構體變量的3種方式
 1> 先定義類型,再定義變量(分開定義)
 struct Student
 {
    int age;
 };
 struct Student stu;
 
 2> 定義類型的同時定義變量
 struct Student
 {
    int age;
 } stu;
 struct Student stu2;
 
 3> 定義類型的同時定義變量(省略了類型名稱)
 struct
 {
    int age;
 } stu;
 
 2.結構體類型的作用域
 1> 定義在函數外面:全局有效(從定義類型的那行開始,一直到文件結尾)
 2> 定義在函數(代碼塊)內部:局部有效(從定義類型的那行開始,一直到代碼塊結束)

 3.代碼

 1>結構體

 1 /* 2  數組:只能由多個相同類型的數據構成 3   4  結構體:可以由多個不同類型的數據構成 5  */ 6 #include <stdio.h> 7  8 int main() 9 {10     //int ages[3] = {[2] = 10, 11, 27};11     12     13     //int ages[3] = {10, 11, 29};14     15     // 1.定義結構體類型16     struct Person17     { // 里面的3個變量,可以稱為是結構體的成員或者屬性18         int age; // 年齡19         double height; // 身高20         char *name; // 姓名21     };22     23     // 2.根據結構體類型,定義結構體變量24     struct Person p = {20, 1.55, "jack"};25     p.age = 30;26     p.name = "rose";27     28     PRintf("age=%d, name=%s, height=%f/n", p.age, p.name, p.height);29     30     /* 錯誤寫法31     struct Person p2;32     p2 = {30, 1.67, "jake"};33     */34     35     struct Person p2 = {.height = 1.78, .name="jim", .age=30};36     //p2.age = 25;37     38     return 0;39 }

 2>結構體內存分析

 1 #include <stdio.h> 2 int main() 3 { 4      5      6     return 0; 7 } 8  9 // 補齊算法10 void test1()11 {12     struct Student13     {14         int age;// 4個字節15         16         char a;17         18         //char *name; // 8個字節19     };20     21     struct Student stu;22     //stu.age = 20;23     //stu.name = "jack";24     // 補齊算法(對齊算法)25     // 結構體所占用的存儲空間 必須是 最大成員字節數的倍數26     27     int s = sizeof(stu);28     printf("%d/n", s);29 }30 31 // 結構體內存細節32 void test()33 {34     // 1.定義結構體類型(并不會分配存儲空間)35     struct Date36     {37         int year;38         int month;39         int day;40     };41     42     // 2.定義結構體變量(真正分配存儲空間)43     struct Date d1 = {2011, 4, 10};44     45     46     struct Date d2 = {2012, 8, 9};47     48     // 會將d1所有成員的值對應地賦值給d2的所有成員49     d2 = d1;50     d2.year = 2010;51     52     printf("%d - %d - %d/n", d1.year, d1.month, d1.day);53     54     printf("%d - %d - %d/n", d2.year, d2.month, d2.day);55     /*56      printf("%p - %p - %p/n", &d1.year, &d1.month, &d1.day);57      58      int s = sizeof(d1);59      printf("%d/n", s);60      61      */62 }

3>注意點

  1 #include <stdio.h>  2 // 從這行開始,一直到文件結尾,都是有效(跟全局變量一樣)  3 struct Date  4 {  5     int year;  6     int month;  7     int day;  8 };  9  10 int a; 11  12 void test2() 13 { 14     struct Date 15     { 16         int year; 17     }; 18     // 這里使用的是test2函數內部的struct Date類型 19     struct Date d1 = {2011}; 20      21      22     // 結構體類型也是有作用域,從定義類型的那一行開始,一直到代碼塊結束 23     struct Person 24     { 25         int age; 26     }; 27      28     struct Person p; 29      30     a  = 10; 31 } 32  33 int main() 34 { 35     struct Date d1 = {2009, 8, 9}; 36      37      38     test2(); 39      40     // 不能使用test2函數中定義的類型 41     // struct Person p2; 42      43     return 0; 44 } 45  46 // 定義結構體變量 47 void test() 48 { 49     // 定義結構體變量的第3種方式 50     struct { 51         int age; 52         char *name; 53     } stu; 54      55     struct { 56         int age; 57         char *name; 58     } stu2; 59      60      61     /*結構體類型不能重復定義 62      struct Student 63      { 64      int age; 65      }; 66       67      struct Student 68      { 69      double height; 70      }; 71       72      struct Student stu; 73      */ 74      75     /* 錯誤寫法:結構體類型重復定義 76      struct Student 77      { 78      int age; 79      double height; 80      char *name; 81      } stu; 82       83      struct Student 84      { 85      int age; 86      double height; 87      char *name; 88      } stu2;c 89      */ 90      91     /* 92      這句代碼做了兩件事情 93      1.定義結構體類型 94      2.利用新定義好的類型來定義結構體變量 95      */ 96     // 定義變量的第2種方式:定義類型的同時定義變量 97     /* 98      struct Student 99      {100      int age;101      double height;102      char *name;103      } stu;104      105      struct Student stu2;106      */107     108     /*109      // 定義變量的第1種方式:110      // 1.類型111      struct Student112      {113      int age;114      double height;115      char *name;116      };117      118      // 2.變量119      struct Student stu = {20, 1.78, "jack"};120      */121 }

 4>結構體數組

 1 int main() 2 { 3     struct RankRecord 4     { 5         int no; // 序號  4 6         int score; // 積分 4 7         char *name; // 名稱 8 8     }; 9     /*10     struct RankRecord r1 = {1, "jack", 5000};11     struct RankRecord r2 = {2, "jim", 500};12     struct RankRecord r3 = {3, "jake",300};13     */14     15     //int ages[3] = {10, 19, 29};16     17     //int ages[3];18     // 對齊算法19     // 能存放3個結構體變量,每個結構體變量占16個字節20     // 7221     /*22      int no; // 序號  423      char *name; // 名稱 824      int score; // 積分 425      */26     // 4827     /*28      int no; // 序號  429      int score; // 積分 430      char *name; // 名稱 831      */32     struct RankRecord records[3] =33     {34         {1, "jack", 5000},35         36         {2, "jim", 500},37         38         {3, "jake",300}39     };40     41     records[0].no = 4;42     // 錯誤寫法43     //records[0] = {4, "rose", 9000};44     45     for (int i = 0; i<3; i++)46     {47         printf("%d/t%s/t%d/n", records[i].no, records[i].name, records[i].score);48     }49     50     //printf("%d/n", sizeof(records));51     52     53     return 0;54 }

 

 
 

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
欧美在线一级va免费观看| 亚洲精品国产免费| 一区三区二区视频| 亚洲精品视频免费在线观看| 青青久久aⅴ北条麻妃| 欧美激情在线播放| 国产在线视频2019最新视频| 国产视频精品自拍| 美日韩精品视频免费看| 91夜夜揉人人捏人人添红杏| 亚洲国产精品悠悠久久琪琪| 日韩影视在线观看| 亚洲伦理中文字幕| 国产va免费精品高清在线| 亚洲国产精品va在线观看黑人| 久久久精品日本| 欧美性20hd另类| 九九视频这里只有精品| 亚洲欧美一区二区三区在线| 色琪琪综合男人的天堂aⅴ视频| 成人亚洲综合色就1024| 日韩欧美福利视频| 日韩av片免费在线观看| 日韩美女av在线| 亚洲小视频在线| 午夜精品久久久久久久白皮肤| 欧美老女人性视频| 国产盗摄xxxx视频xxx69| 欧美性20hd另类| 国产91精品久久久久久| 欧美激情中文字幕乱码免费| 性色av一区二区三区红粉影视| 午夜剧场成人观在线视频免费观看| 成人免费在线视频网址| 91国产中文字幕| 日韩成人av网| 亚洲精品一区二区三区不| 国产伦精品一区二区三区精品视频| 欧美色图在线视频| 国语自产偷拍精品视频偷| 亚洲精品福利免费在线观看| 欧美黄色片视频| 亚洲国产精品国自产拍av秋霞| 一本大道香蕉久在线播放29| 粗暴蹂躏中文一区二区三区| 91在线免费观看网站| 91在线观看欧美日韩| 国产成人鲁鲁免费视频a| 国产精品入口免费视频一| 亚洲国语精品自产拍在线观看| 欧美成人精品一区二区| 欧美在线影院在线视频| 成人欧美一区二区三区在线湿哒哒| 神马久久久久久| 欧美老女人在线视频| 欧美成人午夜影院| 欧美成年人视频网站欧美| 欧美日韩性视频在线| 日韩精品在线免费观看| 欧美日韩一区二区三区在线免费观看| 久久九九亚洲综合| 国产精品大片wwwwww| 亚洲国产精品久久久久秋霞蜜臀| 国产精品午夜国产小视频| 亚洲国产精品va在线看黑人动漫| 在线观看国产精品淫| 97在线观看视频| 久久av中文字幕| 久久色免费在线视频| www国产91| 国产亚洲美女精品久久久| 亚洲精品一区二区久| 日韩欧美在线视频免费观看| 久久av在线播放| 亚洲成人在线网| 欧美天天综合色影久久精品| 精品视频一区在线视频| 久久亚洲电影天堂| 亚洲成在人线av| 国产日韩在线看| 久久电影一区二区| 中文字幕在线观看亚洲| 日韩精品在线第一页| 日韩动漫免费观看电视剧高清| 国产精品网址在线| 欧美激情国内偷拍| 久久久精品在线观看| 97免费中文视频在线观看| 中文字幕在线国产精品| 欧美电影在线观看网站| 亚洲乱码一区二区| 亚洲人成在线观看网站高清| 亚洲精品按摩视频| 中文字幕在线成人| 国产一区二区色| 视频直播国产精品| 黑人狂躁日本妞一区二区三区| 911国产网站尤物在线观看| 久久国产精品99国产精| 九色91av视频| 久久精品视频导航| 日韩成人免费视频| 欧美黄色性视频| 91av在线国产| 精品国产自在精品国产浪潮| 国产欧美婷婷中文| 亚洲第一页自拍| 精品久久久久人成| 欧美高清视频在线观看| 欧美黑人巨大精品一区二区| 国内揄拍国内精品少妇国语| 91九色精品视频| 亚洲石原莉奈一区二区在线观看| 久久九九热免费视频| 2019中文字幕全在线观看| 久久露脸国产精品| 欧美一级片在线播放| 欧美一区二粉嫩精品国产一线天| 国产精品久久久| 亚洲人精品午夜在线观看| 一本色道久久88亚洲综合88| 91av在线网站| 青草热久免费精品视频| 国产精品一区=区| 国产精品主播视频| 亚洲第一区中文字幕| 国产精品一区二区久久国产| 91精品久久久久久久久久久久久| 日本成人免费在线| 久久精品小视频| 色综合久久久久久中文网| 不卡在线观看电视剧完整版| 尤物99国产成人精品视频| 欧美日韩在线免费| 亚洲香蕉成人av网站在线观看| 日韩电影中文字幕在线观看| 国产一区二区三区精品久久久| 亚洲精品www久久久| 亚洲va码欧洲m码| 91中文字幕一区| 97在线视频国产| 久久成人亚洲精品| 91在线高清免费观看| 亚洲曰本av电影| 蜜月aⅴ免费一区二区三区| 国产精品第二页| 成人免费看吃奶视频网站| 欧美一区二粉嫩精品国产一线天| 成人性生交大片免费看小说| 中文字幕欧美日韩| 亚洲国产91色在线| 国产精品偷伦免费视频观看的| 中文精品99久久国产香蕉| 日韩人在线观看| 久久精品亚洲热| 91社影院在线观看| 精品国产区一区二区三区在线观看| 日韩免费在线播放| 国产精品成人久久久久| 91精品国产高清久久久久久久久| 亚洲欧美精品伊人久久| 伊人久久久久久久久久久久久| 亚洲风情亚aⅴ在线发布| 久久久久久国产三级电影|