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

首頁 > 編程 > C > 正文

解析結構體的定義及使用詳解

2020-01-26 16:12:58
字體:
來源:轉載
供稿:網友

結構的定義
定義一個結構的一般形式為:
struct 結構名
{
成員表列
}
成員表由若干個成員組成,每個成員都是該結構的一個組成部分。
對每個成員也必須作類型說明。
例如:

復制代碼 代碼如下:

struct stu
{
int num;
char name[20];
int age;
}

結構類型變量的說明
結構體定義并不是定義一個變量,而是定義了一種數據類型,這種類型是你定義的,它可以和語言本身所自有的簡單數據類型一樣使用(如 int )。
結構體本身并不會被作為數據而開辟內存,真正作為數據而在內存中存儲的是這種結構體所定義的變量。
一個結構體變量占多大內存空間呢?這是由這種結構體類型的定義決定的,可以想象為了同時存儲結構體的每一個成員,那么結構體變量的存儲大小,就應該是所有分量的存儲空間的總合。
說明結構變量有以下三種方法。以上面定義的stu為例來加以說明。
1.先定義結構,再說明結構變量。 如
復制代碼 代碼如下:

struct stu
{
int num;
char name[20];
int age;
};
struct stu boy1,boy2;

說明了兩個變量boy1和boy2為stu結構類型。
也可以用宏定義使一個符號常量來表示一個結構類型, 例如:
復制代碼 代碼如下:

#define STU struct stu
STU
{
int num;
char name[20];
int age;
};
STU boy1,boy2; 

2.在定義結構類型的同時說明結構變量。例如:
復制代碼 代碼如下:

struct stu
{
int num;
char name[20];
int age;
}boy1,boy2;

3.直接說明結構變量。
例如:
復制代碼 代碼如下:

struct
{
int num;
char name[20];
int age;
}boy1,boy2; 

第三種方法與第二種方法的區別在于第三種方法中省去了結構名,而直接給出結構變量。
說明了boy1,boy2變量為stu類型后,即可向這兩個變量中的各個成員賦值。
在上述stu結構定義中,所有的成員都是基本數據類型或數組類型。成員也可以又是一個結構, 即構成了嵌套的結構。
例如:
復制代碼 代碼如下:

struct date{
int month;
int day;
int year;
}
struct{
int num;
char name[20];
struct date birthday;
}boy1,boy2;

使用結構變量成員的一般形式是:
結構變量名.成員名
例如:
boy1.num
/*即第一個人的學號 */
如果成員本身又是一個結構則必須逐級找到最低級的成員才能使用。
例如:boy1.birthday.month
即第一個人出生的月份成員可以在程序中單獨使用,與普通變量完全相同。 
結構變量的初始化: 類似多維數組的初始化。 結構變量的賦值
你可對結構體變量的成員逐個賦值,這種方式和數組相像,數組就是逐個元素逐一賦值(對于數組,除非初始化,否則你別無選擇,只能這樣賦值)。不同于數組,標準C中結構體變量可以整體賦值。
例一:
復制代碼 代碼如下:

#include <stdio.h>
int main(void)
{
    struct student
    {
        long int num;
        int      age;
        char*    name;
    }st1={200,18,"zhangsan"};
    struct student  st2,st3; 
    printf("    NO.    age    name   /n");
    printf("   %ld    %d   %s/n",st1.num,st1.age,st1.name);
    getch();
    st2.num=199;
    st2.age=19;
    st2.name="lisi";
    printf("   %ld    %d   %s/n",st2.num,st2.age,st2.name);
    getch();
    st3=st2;
    printf("   %ld    %d   %s/n",st3.num,st3.age,st3.name);
    getch();
    printf("/n/n   struct student:%d",sizeof(struct student));
    getch();
    return 0;
}

例二:
復制代碼 代碼如下:

#include <stdio.h>
#include <conio.h>
struct birth
    {
        int year;
        int month;
        int day;
    };
struct student
    {
        long int num;
        struct  birth  birthday;
        char*    name;
    }st1={200,{1988,8,8},"zhangsan"};
int main(void)
{
    struct student  st2;
    st2=st1;
    printf("   %ld     %s  %d/n",st2.num,st2.name,sizeof(int));
    printf("   year: %d   month: %d   month: %d/n",
                st2.birthday.year,
                st2.birthday.month,
                st2.birthday.day);
    getch();
    return 0;
}

注意
當你的結構體變量中有存放多個字符的成員,建議你將它定義為數組(比如前面的姓名成員,不知道數組該開辟多大時,也可以定義為指針)。原因是指針變量不能存放實際數據,僅僅是地址。

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表

圖片精選

亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
精品欧美一区二区三区| 日韩欧美国产免费播放| 黄色精品在线看| 国产日产欧美a一级在线| 亚洲福利在线视频| 亚洲中国色老太| 国语自产精品视频在线看一大j8| 日韩电影网在线| 91夜夜揉人人捏人人添红杏| 国产亚洲精品久久久优势| 91国产在线精品| 亚洲视频免费一区| 国产精品久久二区| 日韩精品中文字幕在线| 97视频在线观看免费高清完整版在线观看| 久久在线免费观看视频| 国产黑人绿帽在线第一区| 国产乱肥老妇国产一区二| 九九热精品视频国产| 欧美精品性视频| 成人黄色在线免费| 中文字幕日韩欧美在线视频| 国产精品久久久久久久久| 国产噜噜噜噜久久久久久久久| 国产精品久久久久av免费| 国产亚洲精品美女| 欧美与黑人午夜性猛交久久久| 亚洲精品日韩激情在线电影| 亚洲精品国产综合久久| 色综合久久88色综合天天看泰| 热久久美女精品天天吊色| 久久精品久久久久| 欧美裸体xxxx| 欧美国产第一页| 欧美日韩国产色视频| 久久天天躁夜夜躁狠狠躁2022| 精品日韩视频在线观看| 亚洲视频在线播放| 一区二区三区日韩在线| 国精产品一区一区三区有限在线| 成人网在线观看| 国产精品96久久久久久| 国产精品久久久精品| 97碰碰碰免费色视频| 97热在线精品视频在线观看| 日本一区二区在线播放| 色无极亚洲影院| 亚洲最新视频在线| 中文字幕欧美日韩| 国产日产久久高清欧美一区| 岛国av在线不卡| 91精品国产自产在线观看永久| 亚洲天堂av电影| 亚洲永久在线观看| 日韩经典中文字幕在线观看| 国产成人久久精品| 欧美午夜性色大片在线观看| 久久亚洲欧美日韩精品专区| 日韩成人免费视频| 国产一级揄自揄精品视频| 日韩欧美一区二区三区久久| 日韩av中文字幕在线免费观看| 国产欧美日韩91| 久久综合免费视频| 丝袜美腿亚洲一区二区| 日韩av男人的天堂| 国产这里只有精品| 亚洲精品一区二区三区婷婷月| 91中文在线视频| 成人国内精品久久久久一区| 日韩av一区二区在线观看| 成人福利网站在线观看| 欧美精品18videos性欧美| 国产精品激情av电影在线观看| 日韩免费av在线| 亚洲人成电影网站色| 国产精品久久久久久久7电影| 国产网站欧美日韩免费精品在线观看| 久久久亚洲国产天美传媒修理工| 91色精品视频在线| 久久久久久国产三级电影| 亚洲视频777| 日韩电视剧在线观看免费网站| 久久精品视频在线观看| 国产97在线观看| 欧美一级高清免费播放| 国产精品一区二区三区成人| 欧美日韩国内自拍| 久久99久久亚洲国产| 国产在线精品自拍| 亚洲精品国产综合久久| 色偷偷9999www| 91国内精品久久| 久久亚洲欧美日韩精品专区| 久热精品视频在线免费观看| 狠狠久久亚洲欧美专区| 午夜精品理论片| 97在线观看视频国产| 国产一区二区三区在线| 国产成人精品av在线| 韩国三级电影久久久久久| 国产国产精品人在线视| 91精品成人久久| 欧美激情一级二级| 国产日韩欧美日韩大片| 欧美黑人性生活视频| 欧美极品美女视频网站在线观看免费| 亚洲欧美日韩国产中文| 国产精品久久久久久久7电影| 日韩高清不卡av| 亚洲精品电影久久久| 色狠狠久久aa北条麻妃| 欧美日韩精品在线视频| 亚洲国产精品999| 久久精品国产亚洲精品2020| 久久中文久久字幕| 久久激情五月丁香伊人| 国产精品久久久久久中文字| 伊人伊成久久人综合网站| 色天天综合狠狠色| 久久精品成人欧美大片古装| 欧美男插女视频| 欧美日韩成人在线视频| 九九热在线精品视频| 日本久久久久久久| 亚州欧美日韩中文视频| 亚洲午夜久久久影院| 国产99久久精品一区二区 夜夜躁日日躁| 97在线观看免费| 亚洲欧美日韩天堂| 91精品久久久久久久久久| 日韩黄色av网站| 日本亚洲欧美成人| 美女999久久久精品视频| 国产精品一区二区久久| 亚洲国产91精品在线观看| 久久久精品视频成人| 日韩精品极品在线观看| 欧美亚洲国产视频小说| 日韩欧美aaa| 精品国产欧美成人夜夜嗨| 欧美激情亚洲一区| 日韩成人av在线| 欧美久久精品一级黑人c片| 久久久精品在线| 精品日本美女福利在线观看| 久久99国产综合精品女同| 亚洲精品久久久久国产| 欧美精品www在线观看| 国产精品aaa| 日韩高清a**址| 久久国内精品一国内精品| 91福利视频网| 成人激情春色网| 欧美成人自拍视频| 日韩欧美一区二区三区| 国产精品日韩精品| 亚洲影视中文字幕| 国产美女直播视频一区| 亚洲成人av资源网| 日韩av在线免费看| 日韩av在线网页| 亚洲自拍偷拍视频| 富二代精品短视频|