亚洲欧洲国产欧美一区精品,激情五月亚洲色五月,最新精品国偷自产在线婷婷,欧美婷婷丁香五月天社区

      考試首頁 | 考試用書 | 培訓(xùn)課程 | 模擬考場 | 考試論壇  
      全國  |             |          |          |          |          |         
        當(dāng)前位置:計算機(jī)等級 > 二級考試 > C語言程序設(shè)計 > C語言輔導(dǎo) > 文章內(nèi)容
        

      全國計算機(jī)等級考試二級C語言入門教程(122)

      中華IT學(xué)院   【 】  [ 2016年9月20日 ]

      位域的使用位域的使用和結(jié)構(gòu)成員的使用相同,其一般形式為: 位域變量名·位域名 位域允許用各種格式輸出。


      main(){
      struct bs
      {
      unsigned a:1;
      unsigned b:3;
      unsigned c:4;
      } bit,*pbit;
      bit.a=1;
      bit.b=7;
      bit.c=15;
      printf("%d,%d,%d\n",bit.a,bit.b,bit.c);
      pbit=&bit;
      pbit->a=0;
      pbit->b&=3;
      pbit->c|=1;
      printf("%d,%d,%d\n",pbit->a,pbit->b,pbit->c);
      }


      上例程序中定義了位域結(jié)構(gòu)bs,三個位域為a,b,c。說明了 bs類型的變量bit和指向bs類型的指針變量pbit。這表
      示位域也是可以使用指針的。
      程序的9、10、11三行分別給三個位域賦值。( 應(yīng)注意賦值不能超過該位域的允許范圍)程序第12行以整型量格式輸
      出三個域的內(nèi)容。第 13行把位域變量 bit的地址送給指針變量 pbit。第 14行用指針方式給位域 a重新賦值,賦為0。
      第15行使用了復(fù)合的位運(yùn)算符"&=", 該行相當(dāng)于: pbit->b=pbit->b&3位域b中原有值為7,與3作按位與運(yùn)算的
      結(jié)果為3(111&011=011,十進(jìn)制值為3)。同樣,程序第16行中使用了復(fù)合位運(yùn)算"|=",相當(dāng)于: pbit->c=pbit->c|1
      其結(jié)果為15。程序第 17行用指針方式輸出了這三個域的值。


      類型定義符typedef


      C語言不僅提供了豐富的數(shù)據(jù)類型,而且還允許由用戶自己定義類型說明符,也就是說允許由用戶為數(shù)據(jù)類型取“別
      名”。 類型定義符typedef即可用來完成此功能。例如,有整型量a,b,其說明如下: int aa,b; 其中int是整型變
      量的類型說明符。int的完整寫法為integer,
      為了增加程序的可讀性,可把整型說明符用 typedef定義為: typedef int INTEGER 這以后就可用 INTEGER來代替
      int作整型變量的類型說明了。 例如: INTEGER a,b;它等效于: int a,b; 用typedef定義數(shù)組、指針、結(jié)構(gòu)等類
      型將帶來很大的方便,不僅使程序書寫簡單而且使意義更為明確,因而增強(qiáng)了可讀性。例如:
      typedef char NAME[20]; 表示 NAME是字符數(shù)組類型,數(shù)組長度為20。
      然后可用NAME 說明變量,如: NAME a1,a2,s1,s2;完全等效于: char a1[20],a2[20],s1[20],s2[20]
      又如:



      typedef struct stu{ char name[20];
      int age;
      char sex;
      } STU;


      定義 STU表示 stu的結(jié)構(gòu)類型,然后可用 STU來說明結(jié)構(gòu)變量: STU body1,body2;
      typedef定義的一般形式為: typedef 原類型名 新類型名 其中原類型名中含有定義部分,新類型名一般用大寫表示,

      便于區(qū)別。在有時也可用宏定義來代替 typedef的功能,但是宏定義是由預(yù)處理完成的,而typedef則是在編譯時完
      成的,后者更為靈活方便。

      分享到:
      本文糾錯】【告訴好友】【打印此文】【返回頂部
      將考試網(wǎng)添加到收藏夾 | 每次上網(wǎng)自動訪問考試網(wǎng) | 復(fù)制本頁地址,傳給QQ/MSN上的好友 | 申請鏈接 | 意見留言 TOP
      關(guān)于本站  網(wǎng)站聲明  廣告服務(wù)  聯(lián)系方式  站內(nèi)導(dǎo)航  考試論壇
      Copyright © 2006-2017 中華考試網(wǎng)(Examw.com) All Rights Reserved  營業(yè)執(zhí)照