<em id="0a85b"><option id="0a85b"></option></em>

<abbr id="0a85b"></abbr>

      <nobr id="0a85b"></nobr>
        <tr id="0a85b"></tr>
        9久久伊人精品综合,亚洲一区精品视频在线,成 人免费va视频,国产一区二区三区黄网,99国产精品永久免费视频,亚洲毛片多多影院,精品久久久无码人妻中文字幕,无码国产欧美一区二区三区不卡
        學(xué)習(xí)啦>學(xué)習(xí)英語(yǔ)>專業(yè)英語(yǔ)>計(jì)算機(jī)英語(yǔ)>

        c語(yǔ)言結(jié)構(gòu)體的用法

        時(shí)間: 長(zhǎng)思709 分享
          結(jié)構(gòu)是由基本數(shù)據(jù)類型構(gòu)成的、并用一個(gè)標(biāo)識(shí)符來(lái)命名的各種變量的組合。
          結(jié)構(gòu)中可以使用不同的數(shù)據(jù)類型。下面小編就給大家介紹下c語(yǔ)言結(jié)構(gòu)體的用法。
                c語(yǔ)言結(jié)構(gòu)體的用法如下:
          1. 結(jié)構(gòu)說(shuō)明和結(jié)構(gòu)變量定義
          在Turbo C中, 結(jié)構(gòu)也是一種數(shù)據(jù)類型, 可以使用結(jié)構(gòu)變量, 因此, 象其它
          類型的變量一樣, 在使用結(jié)構(gòu)變量時(shí)要先對(duì)其定義。
          定義結(jié)構(gòu)變量的一般格式為:
          struct 結(jié)構(gòu)名
          {
          類型 變量名;
          類型 變量名;
          ...
          } 結(jié)構(gòu)變量;
          結(jié)構(gòu)名是結(jié)構(gòu)的標(biāo)識(shí)符不是變量名。
          類型為第二節(jié)中所講述的五種數(shù)據(jù)類型(整型、浮點(diǎn)型、字符型、指針型和
          無(wú)值型)。
          構(gòu)成結(jié)構(gòu)的每一個(gè)類型變量稱為結(jié)構(gòu)成員, 它象數(shù)組的元素一樣, 但數(shù)組中
          元素是以下標(biāo)來(lái)訪問(wèn)的, 而結(jié)構(gòu)是按變量名字來(lái)訪問(wèn)成員的。
          下面舉一個(gè)例子來(lái)說(shuō)明怎樣定義結(jié)構(gòu)變量。
          struct string
          {
          char name[8];
          int age;
          char sex[2];
          char depart[20];
          float wage1, wage2, wage3, wage4, wage5;
          } person;
          這個(gè)例子定義了一個(gè)結(jié)構(gòu)名為string的結(jié)構(gòu)變量person, 如果省略變量名
          person, 則變成對(duì)結(jié)構(gòu)的說(shuō)明。用已說(shuō)明的結(jié)構(gòu)名也可定義結(jié)構(gòu)變量。這樣定義
          時(shí)上例變成:
          struct string
          {
          char name[8];
          int age;
          char sex[2];
          char depart[20];
          float wage1, wage2, wage3, wage4, wage5;
          };
          struct string person;
          如果需要定義多個(gè)具有相同形式的結(jié)構(gòu)變量時(shí)用這種方法比較方便, 它先作
          結(jié)構(gòu)說(shuō)明, 再用結(jié)構(gòu)名來(lái)定義變量。
          例如:
          struct string Tianyr, Liuqi, ...;
          如果省略結(jié)構(gòu)名, 則稱之為無(wú)名結(jié)構(gòu), 這種情況常常出現(xiàn)在函數(shù)內(nèi)部, 用這
          種結(jié)構(gòu)時(shí)前面的例子變成:
          struct
          {
          char name[8];
          int age;
          char sex[2];
          char depart[20];
          float wage1, wage2, wage3, wage4, wage5;
          } Tianyr, Liuqi;
          2. 結(jié)構(gòu)變量的使用
          結(jié)構(gòu)是一個(gè)新的數(shù)據(jù)類型, 因此結(jié)構(gòu)變量也可以象其它類型的變量一樣賦值、
          運(yùn)算, 不同的是結(jié)構(gòu)變量以成員作為基本變量。
          結(jié)構(gòu)成員的表示方式為:
          結(jié)構(gòu)變量.成員名
          如果將"結(jié)構(gòu)變量.成員名"看成一個(gè)整體, 則這個(gè)整體的數(shù)據(jù)類型與結(jié)構(gòu)中
          該成員的數(shù)據(jù)類型相同, 這樣就可象前面所講的變量那樣使用。
          下面這個(gè)例子定義了一個(gè)結(jié)構(gòu)變量, 其中每個(gè)成員都從鍵盤接收數(shù)據(jù), 然后
          對(duì)結(jié)構(gòu)中的浮點(diǎn)數(shù)求和, 并顯示運(yùn)算結(jié)果, 同時(shí)將數(shù)據(jù)以文本方式存入一個(gè)名為
          wage.dat的磁盤文件中。請(qǐng)注意這個(gè)例子中不同結(jié)構(gòu)成員的訪問(wèn)。
          例3:
          #i nclude <stdio.h>
          main()
          {
          struct{ /*定義一個(gè)結(jié)構(gòu)變量*/
          char name[8];
          int age;
          char sex[2];
          char depart[20];
          float wage1, wage2, wage3, wage4,
          wage5;
          }a;
          FILE *fp;
          float wage;
          char c=’Y’;
          fp="fopen"("wage.dat", "w");
          /*創(chuàng)建一個(gè)文件只寫*/
          while(c==’Y’||c==’y’)
          /*判斷是否繼續(xù)循環(huán)*/
          {
          printf("/nName:");
          scanf("%s", a.name); /*輸入姓名*/
          printf("Age:");
          scanf("%d", &a.wage); /*輸入年齡*/
          printf("Sex:");
          scanf("%d", a.sex);
          printf("Dept:");
          scanf("%s", a.depart);
          printf("Wage1:");
          scanf("%f", &a.wage1); /*輸入工資*/
          printf("Wage2:");
          scanf("%f", &a.wage2);
          printf("Wage3:");
          scanf("%f", &a.wage3);
          printf("Wage4:");
          scanf("%f", &a.wage4);
          printf("Wage5:");
          scanf("%f", &a.wage5);
          wage=a.wage1+a.wage2+a.wage3+a.wage4+a.wage5;
          printf("The sum of wage is
          %6.2f/n", wage);/*顯示結(jié)果*/
          fprintf(fp,
          "%10s%4d%4s%30s%10.2f/n", /*結(jié)果寫入文件*/
          a.name, a.age, a.sex,
          a.depart, wage);
          while(1)
          {
          printf("Continue<Y/N>");
          c="getche"();
          if(c==’Y’||c==’y’||c==’N’||c==’n’)
          break;
          }
          }
          fclose(fp);
          }
          3. 結(jié)構(gòu)數(shù)組和結(jié)構(gòu)指針
          結(jié)構(gòu)是一種新的數(shù)據(jù)類型, 同樣可以有結(jié)構(gòu)數(shù)組和結(jié)構(gòu)指針。
          一、結(jié)構(gòu)數(shù)組
          結(jié)構(gòu)數(shù)組就是具有相同結(jié)構(gòu)類型的變量集合。假如要定義一個(gè)班級(jí)40個(gè)同學(xué)
          的姓名、性別、年齡和住址, 可以定義成一個(gè)結(jié)構(gòu)數(shù)組。如下所示:
          struct{
          char name[8];
          char sex[2];
          int age;
          char addr[40];
          }student[40];
          也可定義為:
          struct string{
          char name[8];
          char sex[2];
          int age;
          char addr[40];
          };
          struct string student[40];
          需要指出的是結(jié)構(gòu)數(shù)組成員的訪問(wèn)是以數(shù)組元素為結(jié)構(gòu)變量的, 其形式為:
          結(jié)構(gòu)數(shù)組元素.成員名
          例如:
          student[0].name
          student[30].age
          實(shí)際上結(jié)構(gòu)數(shù)組相當(dāng)于一個(gè)二維構(gòu)造, 第一維是結(jié)構(gòu)數(shù)組元素, 每個(gè)元素是
          一個(gè)結(jié)構(gòu)變量, 第二維是結(jié)構(gòu)成員。
          注意:
          結(jié)構(gòu)數(shù)組的成員也可以是數(shù)組變量。
          例如:
          struct a
          {
          int m[3][5];
          float f;
          char s[20];
          }y[4];
          為了訪問(wèn)結(jié)構(gòu)a中結(jié)構(gòu)變量y[2]的這個(gè)變量, 可寫成
          y[2].m[1][4]
          二、結(jié)構(gòu)指針
          結(jié)構(gòu)指針是指向結(jié)構(gòu)的指針。它由一個(gè)加在結(jié)構(gòu)變量名前的"*" 操作符來(lái)定
          義, 例如用前面已說(shuō)明的結(jié)構(gòu)定義一個(gè)結(jié)構(gòu)指針如下:
          struct string{
          char name[8];
          char sex[2];
          int age;
          char addr[40];
          }*student;
          也可省略結(jié)構(gòu)指針名只作結(jié)構(gòu)說(shuō)明, 然后再用下面的語(yǔ)句定義結(jié)構(gòu)指針。
          struct string *student;
          使用結(jié)構(gòu)指針對(duì)結(jié)構(gòu)成員的訪問(wèn), 與結(jié)構(gòu)變量對(duì)結(jié)構(gòu)成員的訪問(wèn)在表達(dá)方式
          上有所不同。結(jié)構(gòu)指針對(duì)結(jié)構(gòu)成員的訪問(wèn)表示為:
          結(jié)構(gòu)指針名->結(jié)構(gòu)成員
          其中"->"是兩個(gè)符號(hào)"-"和">"的組合, 好象一個(gè)箭頭指向結(jié)構(gòu)成員。例如要
          給上面定義的結(jié)構(gòu)中name和age賦值, 可以用下面語(yǔ)句:
          strcpy(student->name, "Lu G.C");
          student->age=18;
          實(shí)際上, student->name就是(*student).name的縮寫形式。
          需要指出的是結(jié)構(gòu)指針是指向結(jié)構(gòu)的一個(gè)指針, 即結(jié)構(gòu)中第一個(gè)成員的首地
          址, 因此在使用之前應(yīng)該對(duì)結(jié)構(gòu)指針初始化, 即分配整個(gè)結(jié)構(gòu)長(zhǎng)度的字節(jié)空間,
          這可用下面函數(shù)完成, 仍以上例來(lái)說(shuō)明如下:
          student=(struct string*)malloc(size of
          (struct string));
          size of (struct string)自動(dòng)求取string結(jié)構(gòu)的字節(jié)長(zhǎng)度,
          malloc() 函數(shù)
          定義了一個(gè)大小為結(jié)構(gòu)長(zhǎng)度的內(nèi)存區(qū)域, 然后將其詐地址作為結(jié)構(gòu)指針?lè)祷亍?/div>
          注意:
          1. 結(jié)構(gòu)作為一種數(shù)據(jù)類型, 因此定義的結(jié)構(gòu)變量或結(jié)構(gòu)指針變量同樣有局
          部變量和全程變量, 視定義的位置而定。
          2. 結(jié)構(gòu)變量名不是指向該結(jié)構(gòu)的地址, 這與數(shù)組名的含義不同, 因此若需
          要求結(jié)構(gòu)中第一個(gè)成員的首地址應(yīng)該是&[結(jié)構(gòu)變量名]。
          4. 結(jié)構(gòu)的復(fù)雜形式
          一、嵌套結(jié)構(gòu)
          嵌套結(jié)構(gòu)是指在一個(gè)結(jié)構(gòu)成員中可以包括其它一個(gè)結(jié)構(gòu), Turbo C 允許這種
          嵌套。
          例如: 下面是一個(gè)有嵌套的結(jié)構(gòu)
          struct string{
          char name[8];
          int age;
          struct addr address;
          } student;
          其中: addr為另一個(gè)結(jié)構(gòu)的結(jié)構(gòu)名, 必須要先進(jìn)行, 說(shuō)明, 即
          struct addr{
          char city[20];
          unsigned lon zipcode;
          char tel[14];
          }
          如果要給student結(jié)構(gòu)中成員address結(jié)構(gòu)中的zipcode賦值, 則可寫成:
          student.address.zipcode=200001;
          每個(gè)結(jié)構(gòu)成員名從最外層直到最內(nèi)層逐個(gè)被列出, 即嵌套式結(jié)構(gòu)成員的表達(dá)
          方式是:
          結(jié)構(gòu)變量名.嵌套結(jié)構(gòu)變量名.結(jié)構(gòu)成員名
          其中: 嵌套結(jié)構(gòu)可以有很多, 結(jié)構(gòu)成員名為最內(nèi)層結(jié)構(gòu)中不是結(jié)構(gòu)的成員名。
          二、位結(jié)構(gòu)
          位結(jié)構(gòu)是一種特殊的結(jié)構(gòu), 在需按位訪問(wèn)一個(gè)字節(jié)或字的多個(gè)位時(shí), 位結(jié)構(gòu)
          比按位運(yùn)算符更加方便。
          位結(jié)構(gòu)定義的一般形式為:
          struct位結(jié)構(gòu)名{
          數(shù)據(jù)類型 變量名: 整型常數(shù);
          數(shù)據(jù)類型 變量名: 整型常數(shù);
          } 位結(jié)構(gòu)變量;
          其中: 數(shù)據(jù)類型必須是int(unsigned或signed)。 整型常數(shù)必須是非負(fù)的整
          數(shù), 范圍是0~15, 表示二進(jìn)制位的個(gè)數(shù), 即表示有多少位。
          變量名是選擇項(xiàng), 可以不命名, 這樣規(guī)定是為了排列需要。
          例如: 下面定義了一個(gè)位結(jié)構(gòu)。
          struct{
          unsigned incon: 8;
          /*incon占用低字節(jié)的0~7共8位*/
          unsigned txcolor:
          4;/*txcolor占用高字節(jié)的0~3位共4位*/
          unsigned bgcolor:
          3;/*bgcolor占用高字節(jié)的4~6位共3位*/
          unsigned blink: 1; /*blink占用高字節(jié)的第7位*/
          }ch;
          位結(jié)構(gòu)成員的訪問(wèn)與結(jié)構(gòu)成員的訪問(wèn)相同。
          例如: 訪問(wèn)上例位結(jié)構(gòu)中的bgcolor成員可寫成:
          ch.bgcolor
          注意:
          1. 位結(jié)構(gòu)中的成員可以定義為unsigned, 也可定義為signed, 但當(dāng)成員長(zhǎng)
          度為1時(shí), 會(huì)被認(rèn)為是unsigned類型。因?yàn)閱蝹€(gè)位不可能具有符號(hào)。
          2. 位結(jié)構(gòu)中的成員不能使用數(shù)組和指針, 但位結(jié)構(gòu)變量可以是數(shù)組和指針,
          如果是指針, 其成員訪問(wèn)方式同結(jié)構(gòu)指針。
          3. 位結(jié)構(gòu)總長(zhǎng)度(位數(shù)), 是各個(gè)位成員定義的位數(shù)之和, 可以超過(guò)兩個(gè)字
          節(jié)。
          4. 位結(jié)構(gòu)成員可以與其它結(jié)構(gòu)成員一起使用。
          例如:
          struct info{
          char name[8];
          int age;
          struct addr address;
          float pay;
          unsigned state: 1;
          unsigned pay: 1;
          }workers;’
          上例的結(jié)構(gòu)定義了關(guān)于一個(gè)工從的信息。其中有兩個(gè)位結(jié)構(gòu)成員, 每個(gè)位結(jié)
          構(gòu)成員只有一位, 因此只占一個(gè)字節(jié)但保存了兩個(gè)信息, 該字節(jié)中第一位表示工
          人的狀態(tài), 第二位表示工資是否已發(fā)放。由此可見(jiàn)使用位結(jié)構(gòu)可以節(jié)省存貯空間。

        c語(yǔ)言結(jié)構(gòu)體的用法

        結(jié)構(gòu)是由基本數(shù)據(jù)類型構(gòu)成的、并用一個(gè)標(biāo)識(shí)符來(lái)命名的各種變量的組合。 結(jié)構(gòu)中可以使用不同的數(shù)據(jù)類型。下面小編就給大家介紹下c語(yǔ)言結(jié)構(gòu)體的用法。 1. 結(jié)構(gòu)說(shuō)明和結(jié)構(gòu)變量定義 在Turbo C中, 結(jié)構(gòu)也是一種數(shù)據(jù)類型, 可以使用結(jié)構(gòu)變量,
        推薦度:
        點(diǎn)擊下載文檔文檔為doc格式

        精選文章

        • c語(yǔ)言宏的用法
          c語(yǔ)言宏的用法

          C語(yǔ)言程序中廣泛的使用宏定義,采用關(guān)鍵字define進(jìn)行定義,宏只是一種簡(jiǎn)單的字符串替換,根據(jù)是否帶參數(shù)分為無(wú)參和帶參。宏的簡(jiǎn)單應(yīng)用很容易掌握,下

        • c語(yǔ)言函數(shù)if的用法怎么用
          c語(yǔ)言函數(shù)if的用法怎么用

          在c語(yǔ)言中游學(xué)多函數(shù)用法都有很大考究,如何正確使用也是很關(guān)鍵的,今天學(xué)習(xí)啦小編在這里為大家介紹c語(yǔ)言函數(shù)if的用法,希望對(duì)大家有所幫助! c語(yǔ)言函

        • c語(yǔ)言方括號(hào)的用法
          c語(yǔ)言方括號(hào)的用法

          C語(yǔ)言中方括號(hào)是用來(lái)定義數(shù)組的表示數(shù)組的長(zhǎng)度,而大括號(hào)是用來(lái)賦初始值的,表示這個(gè)變量的取值,下面小編就來(lái)為大家介紹c語(yǔ)言方括號(hào)的用法。 1、單

        • c語(yǔ)言的用法
          c語(yǔ)言的用法

          語(yǔ)言程序設(shè)計(jì)是一門基礎(chǔ)的程序設(shè)計(jì)語(yǔ)言,學(xué)好這門課對(duì)以后程序開(kāi)發(fā)至關(guān)重要。由于C語(yǔ)言靈活、強(qiáng)大,初學(xué)者要全面地掌握它非常吃力,因此在學(xué)習(xí)C語(yǔ)言的

        515198 主站蜘蛛池模板: 在线 欧美 中文 亚洲 精品| 91久久青草精品38国产| 国产无套粉嫩白浆在线精品| 亚洲第一区二区国产精品| 精品国产AV色欲果冻传媒| 国产精品理论片在线观看| 国产视频一区二区三区四区视频| 在线欧美中文字幕农村电影| 黄色a一级视频| 亚洲精品国产无套在线观| 日韩精品亚洲专区在线观看| 国产日韩一区二区在线| 家庭乱码伦区中文字幕在线| 国产精品无码免费播放| 亚洲精品一区二区区别| 国产老熟女国语免费视频| 日韩一区二区三区不卡片| 亚洲天堂伊人久久a成人| 国产成人精品无码播放| 亚洲国产一区二区三区亚瑟| 国产精品久久香蕉免费播放| 国产免费无遮挡吸奶头视频| 国产乱人伦偷精品视频不卡| 亚洲老熟女@tubeumtv| 永久无码天堂网小说区| 日韩成人高精品一区二区| 亚州中文字幕一区二区| 少妇夜夜春夜夜爽试看视频| 欧美牲交a欧美牲交aⅴ一| 久久露脸国产精品WWW| 日韩欧美卡一卡二卡新区| 青青草成人免费自拍视频| 噜噜综合亚洲av中文无码| 国产成人啪精品午夜网站| 亚洲精品有码在线观看| 激情综合网五月激情五月| 日韩精品视频精品视频| 开心五月激情五月俺亚洲| 久热这里只有精品12| 99久9在线视频 | 传媒| 亚洲国产精品一区二区第一页|