欧美色欧美亚洲高清在线观看,国产特黄特色a级在线视频,国产一区视频一区欧美,亚洲成a 人在线观看中文

  1. <ul id="fwlom"></ul>

    <object id="fwlom"></object>

    <span id="fwlom"></span><dfn id="fwlom"></dfn>

      <object id="fwlom"></object>

      4.2 C語(yǔ)言中的強(qiáng)制類型轉(zhuǎn)換(精選多篇)

      時(shí)間:2019-05-14 08:43:23下載本文作者:會(huì)員上傳
      簡(jiǎn)介:寫寫幫文庫(kù)小編為你整理了多篇相關(guān)的《4.2 C語(yǔ)言中的強(qiáng)制類型轉(zhuǎn)換》,但愿對(duì)你工作學(xué)習(xí)有幫助,當(dāng)然你在寫寫幫文庫(kù)還可以找到更多《4.2 C語(yǔ)言中的強(qiáng)制類型轉(zhuǎn)換》。

      第一篇:4.2 C語(yǔ)言中的強(qiáng)制類型轉(zhuǎn)換

      一、自動(dòng)類型轉(zhuǎn)換

      ● 字符型變量的值實(shí)質(zhì)上是一個(gè)8位的整數(shù)值,因此取值范圍一般是-128~127,char型變量也可以加修飾符unsigned,則unsigned char 型變量的取值范圍是0~255(有些機(jī)器把char型當(dāng)做unsighed char型對(duì)待,取值范圍總是0~255)?!?如果一個(gè)運(yùn)算符兩邊的運(yùn)算數(shù)類型不同,先要將其轉(zhuǎn)換為相同的類型,即較低類型轉(zhuǎn)換為較高類型,然后再參加運(yùn)算,轉(zhuǎn)換規(guī)則如下圖所示。double ←── float 高 ↑ long ↑ unsigned ↑

      int ←── char,short 低

      ● 圖中橫向箭頭表示必須的轉(zhuǎn)換,如兩個(gè)float型數(shù)參加運(yùn)算,雖然它們類型相同,但仍要先轉(zhuǎn)成double型再進(jìn)行運(yùn)算,結(jié)果亦為double型??v向箭頭表示當(dāng)運(yùn)算符兩邊的運(yùn)算數(shù)為不同類型時(shí)的轉(zhuǎn)換,如一個(gè)long 型數(shù)據(jù)與一個(gè)int型數(shù)據(jù)一起運(yùn)算,需要先將int型數(shù)據(jù)轉(zhuǎn)換為long型,然后兩者再進(jìn)行運(yùn)算,結(jié)果為long型。所有這些轉(zhuǎn)換都是由系統(tǒng)自動(dòng)進(jìn)行的,使用時(shí)你只需從中了解結(jié)果的類型即可。這些轉(zhuǎn)換可以說是自動(dòng)的,但然,C語(yǔ)言也提供了以顯式的形式強(qiáng)制轉(zhuǎn)換類型的機(jī)制?!?當(dāng)較低類型的數(shù)據(jù)轉(zhuǎn)換為較高類型時(shí),一般只是形式上有所改變,而不影響數(shù)據(jù)的實(shí)質(zhì)內(nèi)容,而較高類型的數(shù)據(jù)轉(zhuǎn)換為較低類型時(shí)則可能有些數(shù)據(jù)丟失。

      二、賦值中的類型轉(zhuǎn)換

      當(dāng)賦值運(yùn)算符兩邊的運(yùn)算對(duì)象類型不同時(shí),將要發(fā)生類型轉(zhuǎn)換,轉(zhuǎn)換的規(guī)則是:把賦值運(yùn)算符右側(cè)表達(dá)式的類型轉(zhuǎn)換為左側(cè)變量的類型。具體的轉(zhuǎn)換如下:(1)浮點(diǎn)型與整型

      ● 將浮點(diǎn)數(shù)(單雙精度)轉(zhuǎn)換為整數(shù)時(shí),將舍棄浮點(diǎn)數(shù)的小數(shù)部分,只保留整數(shù)部分。

      將整型值賦給浮點(diǎn)型變量,數(shù)值不變,只將形式改為浮點(diǎn)形式,即小數(shù)點(diǎn)后帶若干個(gè)0。注意:賦值時(shí)的類型轉(zhuǎn)換實(shí)際上是強(qiáng)制的。(2)單、雙精度浮點(diǎn)型

      ● 由于C語(yǔ)言中的浮點(diǎn)值總是用雙精度表示的,所以float 型數(shù)據(jù)只是在尾部加0延長(zhǎng)為doub1e型數(shù)據(jù)參加運(yùn)算,然后直接賦值。doub1e型數(shù)據(jù)轉(zhuǎn)換為float型時(shí),通過截尾數(shù)來(lái)實(shí)現(xiàn),截?cái)嗲耙M(jìn)行四舍五入操作。

      (3)char型與int型

      ● int型數(shù)值賦給char型變量時(shí),只保留其最低8位,高位部分舍棄。

      ● chr型數(shù)值賦給int型變量時(shí),一些編譯程序不管其值大小都作正數(shù)處理,而另一些編譯程序在轉(zhuǎn)換時(shí),若char型數(shù)據(jù)值大于127,就作為負(fù)數(shù)處理。對(duì)于使用者來(lái)講,如果原來(lái)char型 數(shù)據(jù)取正值,轉(zhuǎn)換后仍為正值;如果原來(lái)char型值可正可負(fù),則轉(zhuǎn)換后也仍然保持原值,只是數(shù)據(jù)的內(nèi)部表示形式有所不同。

      (4)int型與1ong型

      ● long型數(shù)據(jù)賦給int型變量時(shí),將低16位值送給int型變量,而將高16 位截?cái)嗌釛墶?這里假定int型

      占兩個(gè)字節(jié))。

      將int型數(shù)據(jù)送給long型變量時(shí),其外部值保持不變,而內(nèi)部形式有所改變。

      (5)無(wú)符號(hào)整數(shù)

      ● 將一個(gè)unsigned型數(shù)據(jù)賦給一個(gè)占據(jù)同樣長(zhǎng)度存儲(chǔ)單元的整型變量時(shí)(如:unsigned→int、unsigned long→long,unsigned short→short),原值照賦,內(nèi)部的存儲(chǔ)方式不變,但外部值卻可能改變?!?將一個(gè)非unsigned整型數(shù)據(jù)賦給長(zhǎng)度相同的unsigned型變量時(shí),內(nèi)部存儲(chǔ)形式不變,但外部表示時(shí)總是無(wú)符號(hào)的。

      /*例:賦值運(yùn)算符舉例 */ main(){ unsigned a,b;

      int i,j;

      a=65535;

      i=-1;

      j=a;

      b=i;

      printf(“(unsigned)%u→(int)%dn”,a,j);

      printf(“(int)%d→(unsigned)%un”,i,b);}

      運(yùn)行結(jié)果為:

      (unsigned)65535→(int)-1(int)-1→(unsigned)65535

      ● 計(jì)算機(jī)中數(shù)據(jù)用補(bǔ)碼表示,int型量最高位是符號(hào)位,為1時(shí)表示負(fù)值,為0時(shí)表示正值。如果一個(gè)無(wú)符號(hào)數(shù)的值小于32768則最高位為0,賦給 int型變量后、得到正值。如果無(wú)符號(hào)數(shù)大于等于32768,則最高位為1,賦給整型變量后就得到一個(gè)負(fù)整數(shù)值。反之,當(dāng)一個(gè)負(fù)整數(shù)賦給unsigned 型變量時(shí),得到的無(wú)符號(hào)值是一個(gè)大于32768的值。

      ● C語(yǔ)言這種賦值時(shí)的類型轉(zhuǎn)換形式可能會(huì)使人感到不精密和不嚴(yán)格,因?yàn)椴还鼙磉_(dá)式的值怎樣,系統(tǒng)都自動(dòng)將其轉(zhuǎn)為賦值運(yùn)算符左部變量的類型。

      ● 而轉(zhuǎn)變后數(shù)據(jù)可能有所不同,在不加注意時(shí)就可能帶來(lái)錯(cuò)誤。這確實(shí)是個(gè)缺點(diǎn),也遭到許多人們批評(píng)。但不應(yīng)忘記的是:c面言最初是為了替代匯編語(yǔ)言而設(shè)計(jì)的,所以類型變換比較隨意。當(dāng)然,用強(qiáng)制類型轉(zhuǎn)換是一個(gè)好習(xí)慣,這樣,至少?gòu)某绦蛏峡梢钥闯鱿敫墒裁础?/p>

      ==

      在C語(yǔ)言中,不同數(shù)據(jù)類型的運(yùn)算對(duì)象進(jìn)行混合運(yùn)算,或者需要將一個(gè)表達(dá)式的結(jié)果轉(zhuǎn)換成期望的類型時(shí),就需要依據(jù)數(shù)據(jù)類型轉(zhuǎn)換規(guī)則進(jìn)行轉(zhuǎn)換。具體有以下幾種情況:

      2.8.1各類數(shù)值型數(shù)據(jù)間混合運(yùn)算時(shí)的類型轉(zhuǎn)換規(guī)則

      整型、實(shí)型、字符型數(shù)據(jù)間可以混合運(yùn)算。在這種情況下,需要將不一致的數(shù)據(jù)類型轉(zhuǎn)

      換成一致的數(shù)據(jù)類型,然后進(jìn)行運(yùn)算。為了保證運(yùn)算精度,系統(tǒng)在運(yùn)算時(shí)的轉(zhuǎn)換規(guī)則是將存儲(chǔ)長(zhǎng)度較短的運(yùn)算對(duì)象轉(zhuǎn)換成存儲(chǔ)長(zhǎng)度較長(zhǎng)的類型,然后再進(jìn)行處理。這種轉(zhuǎn)換是系統(tǒng)自動(dòng)進(jìn)行的,具體如圖2-9所示。

      double ←── float 高 ↑ long ↑ unsigned ↑

      int ←── char,short 低

      對(duì)圖2-9的說明如下:

      1)縱向箭頭表示必定會(huì)進(jìn)行的轉(zhuǎn)換,如float型數(shù)據(jù)必先轉(zhuǎn)換為double型數(shù)據(jù),然后與其他操作數(shù)進(jìn)行運(yùn)算。與此類似,char型或short型數(shù)據(jù)必先轉(zhuǎn)換為int型數(shù)據(jù),然后進(jìn)行運(yùn)算。

      2)橫向箭頭表示當(dāng)運(yùn)算對(duì)象為不同類型數(shù)據(jù)時(shí)的轉(zhuǎn)換方向,如int型數(shù)據(jù)與unsigned型數(shù)據(jù)進(jìn)行運(yùn)算,int型轉(zhuǎn)換為unsigned型后方可進(jìn)行運(yùn) 算。int型數(shù)據(jù)與double型數(shù)據(jù)進(jìn)行運(yùn)算,int型直接轉(zhuǎn)換為double型后進(jìn)行運(yùn)算,不能理解為先轉(zhuǎn)換為unsigned int型,然后轉(zhuǎn)換為long int型,最后再轉(zhuǎn)換為double型。

      2.8.2 賦值時(shí)的類型轉(zhuǎn)換

      當(dāng)賦值運(yùn)算符兩側(cè)的類型不同時(shí),需進(jìn)行類型轉(zhuǎn)換,這種轉(zhuǎn)換也是系統(tǒng)自動(dòng)進(jìn)行的。具體轉(zhuǎn)換原則如下:

      1)float、double型賦值給int型:直接截?cái)嘈?shù)。

      例如:int i=f+0.6;f的值4.0,右邊算術(shù)表達(dá)式運(yùn)算后的結(jié)果為一個(gè)值為4.6的double型數(shù)據(jù),根據(jù)上述轉(zhuǎn)換原則,直接舍棄小數(shù),所以i的值為4。2)int、char型賦值給float、double型:補(bǔ)足有效位以進(jìn)行數(shù)據(jù)類型轉(zhuǎn)換。

      例如:float f=4;float為7位有效數(shù)字,所以f的值為4.000000。3)char型(1字節(jié))賦值給int型(2字節(jié)):數(shù)值賦給int的低8位,高8位補(bǔ)0。

      4)long int型賦值給int型:long int截?cái)嗟妥止?jié)給int型。

      5)int 型賦值給long int:賦給long int的低16位,如果int的最高位是0,則long int的高16位全為0;如果int的最高位是1,則long int的高8位全為1(稱為“符號(hào)擴(kuò)展”)。

      6)unsigned int型賦值給int型:直接傳送數(shù)值。

      7)非unsigned數(shù)據(jù)型賦值給位數(shù)相同的unsigned 數(shù)據(jù):直接傳送數(shù)值。

      2.8.3 強(qiáng)制類型轉(zhuǎn)換

      除了以上的兩種自動(dòng)類型轉(zhuǎn)換外,在C語(yǔ)言中,允許強(qiáng)制類型轉(zhuǎn)換,將某一數(shù)據(jù)的數(shù)據(jù)類型轉(zhuǎn)換為指定的另一種數(shù)據(jù)類型。強(qiáng)制轉(zhuǎn)換是用強(qiáng)制轉(zhuǎn)換運(yùn)算符進(jìn)行的,強(qiáng)制轉(zhuǎn)換運(yùn)算符為:(類型名),強(qiáng)制轉(zhuǎn)換運(yùn)算符組成的運(yùn)算表達(dá)式的一般形式為:

      (類型名)(表達(dá)式)例如:

      (int)(x + y)//將x+y的值轉(zhuǎn)換成整型,即取整數(shù)部分。(float)x + y //將x轉(zhuǎn)換成單精度型。

      強(qiáng)制轉(zhuǎn)換運(yùn)算符優(yōu)先級(jí)比算術(shù)運(yùn)算符高。同表達(dá)式中數(shù)據(jù)類型的自動(dòng)轉(zhuǎn)換一樣,強(qiáng)制類型轉(zhuǎn)換也是臨時(shí)轉(zhuǎn)換,對(duì)原運(yùn)算對(duì)象的類型沒有影響。

      例如,已知有變量定義:int b=7;float a=2.5,c=4.7;求下面算術(shù)表達(dá)式的值。

      a+(int)(b/3*(int)(a+c)/2.0)%4;

      根據(jù)運(yùn)算符結(jié)合性規(guī)則,上述表達(dá)式要自左之右執(zhí)行,b/3為2,2*int(a+c)為14,14/2.0為7.0,強(qiáng)制類型轉(zhuǎn)換后為7,7%4為3;a的值2.5與3相加,最終結(jié)果為5.5。

      第二篇:c語(yǔ)言中swap問題小結(jié)

      #include #include void swap1(int x,int y){ int temp;temp=x;x=y;y=temp;} void swap2(int *x,int *y){ int *temp;temp=x;x=y;y=temp;} void swap3(int *x,int *y){ int temp;temp=*x;*x=*y;*y=temp;} void swap4(int a[],int b[]){ int temp;temp=a[0];a[0]=b[0];b[0]=temp;} void swap5(int a[],int b[]){ int temp;temp=*a;*a=*b;*b=temp;} int main(){ int x,y;x=4;y=3;swap1(x,y);

      printf(“swap1: x:%d,y:%dn”,x,y);//形參傳值,不能交換,實(shí)際傳過去是拷貝的一份,沒改變主函數(shù)中x,y swap2(&x,&y);

      printf(“swap2: x:%d,y:%dn”,x,y);//不能交換,函數(shù)中只是地址交換了下,地址指向的內(nèi)容沒有交換 swap3(&x,&y);

      printf(“swap3: x:%d,y:%dn”,x,y);//能交換,地址指向的內(nèi)容進(jìn)行了交換 swap4(&x,&y);

      printf(“swap4: x:%d,y:%dn”,x,y);//能交換,地址指向的內(nèi)容進(jìn)行交換 swap5(&x,&y);

      printf(“swap5: x:%d,y:%dn”,x,y);//能交換,地址指向的內(nèi)容進(jìn)行交換 return 0;} swap1: x:4,y:3 swap2: x:4,y:3 swap3: x:3,y:4 swap4: x:4,y:3 swap5: x:3,y:4

      第三篇:C語(yǔ)言中的文本Txt操作

      對(duì)于文件使用方式有以下幾點(diǎn)說明:

      1)文件使用方式由r,w,a,t,b,+六個(gè)字符拼成,各字符的含義是:

      r(read):

      w(write):

      +:

      讀和寫

      a(append):

      追加

      t(text):

      文本文件,可省略不寫

      b(banary):

      二進(jìn)制文件

      2)用“r”打開一個(gè)文件時(shí),該文件必須已經(jīng)存在,且只能從該文件讀出。

      3)用“w”打開的文件只能向該文件寫入。若打開的文件不存在,則以指定的文件名建立該文件,若打開的文件已經(jīng)存在,則將該文件刪去,重建一個(gè)新文件。

      4)若要向一個(gè)已存在的文件追加新的信息,只能用“a”方式打開文件。但此時(shí)該文件必須是存在的,否則將會(huì)出錯(cuò)。

      5)在打開一個(gè)文件時(shí),如果出錯(cuò),fopen將返回一個(gè)空指針值NULL。在程序中可以用這一信息來(lái)判別是否完成打開文件的工作,并作相應(yīng)的處理。

      將一個(gè)txt文本里的數(shù)排序再輸出到另一個(gè)文本里

      #include“stdio.h” #include“stdlib.h” main(){

      FILE *p1,*p2;int a[10],i,j,temp;if((p1=fopen(“E:in.txt”,“r”))==NULL)

      {

      printf(“cannot open filen”);

      exit(0);} if((p2=fopen(“E:out.txt”,“w”))==NULL){

      printf(“cannot open filen”);

      exit(0);} for(i=0;i<10;i++)fscanf(p1,“%d”,&a[i]);for(i=0;i<10;i++){

      for(j=0;j<10-i;j++)

      if(a[j]>a[j+1])

      temp=a[j+1];

      a[j+1]=a[j];

      a[j]=temp;}

      for(i=0;i<10;i++)fprintf(p2,“%d”,a[i]);}

      第四篇:C語(yǔ)言中union應(yīng)用總結(jié)

      C語(yǔ)言中union應(yīng)用總結(jié)

      定義共用體的類型變量的一般形式為: union 共用體名 {

      成員列表; }變量列表; 例如: union data {

      int i;

      unsigned char c[4];

      float f;};union data a;//定義union類型的變量

      共用體變量a中的成員i、c、f三個(gè)變量在內(nèi)存中從同一個(gè)地址開始存儲(chǔ),即在同一個(gè)內(nèi)存中可以用來(lái)存放幾種不同類型的數(shù)據(jù);共用體變量a所占內(nèi)存的長(zhǎng)度等于最長(zhǎng)成員的長(zhǎng)度,這里c[4]和f的長(zhǎng)度都為4字節(jié)。例如進(jìn)行如下賦值: a.i = 100;a.f = 100.5;那么此時(shí)共用體變量a中的成員i已經(jīng)沒有值了,因?yàn)榇鎯?chǔ)該值的內(nèi)存現(xiàn)在已經(jīng)被用來(lái)存儲(chǔ)成員f的值了。共用體成員間是共享內(nèi)存的,對(duì)共用體的一個(gè)成員賦值,其他成員的值跟著發(fā)生變化。利用共用體成員間是共享內(nèi)存的這一特性,有以下幾種應(yīng)用:

      1、在需要將浮點(diǎn)數(shù)據(jù)轉(zhuǎn)移時(shí),使用共同體,按4個(gè)字節(jié)的char型數(shù)據(jù)傳輸,帶來(lái)通信效率的提高。一般浮點(diǎn)數(shù)發(fā)送方法:是將浮點(diǎn)數(shù)放大一定的倍數(shù),再取整,再按整數(shù)的高低位傳輸。還需要傳輸這個(gè)放大的倍數(shù),如果浮點(diǎn)數(shù)是個(gè)負(fù)數(shù)的話,還要將符號(hào)位一并發(fā)送。接收方收到這幾條報(bào)文后,才能將數(shù)據(jù)還原。但是接收方還原的浮點(diǎn)數(shù)據(jù)與發(fā)送方發(fā)送的浮點(diǎn)數(shù)不一樣,因?yàn)樾?shù)位數(shù)發(fā)生變化。使用共同體就不會(huì)出現(xiàn)這個(gè)問題了,在 接收方,使用共同體,將收到到的4個(gè)char數(shù)據(jù)賦值給a.c數(shù)組,a.f就是還原的數(shù)據(jù),這個(gè)數(shù)據(jù)和發(fā)送的數(shù)據(jù)是一樣的,也不管發(fā)送的浮點(diǎn)數(shù)是正還是負(fù)。如有a.f =-12.34;則a.c[0] = 0xa4, a.c[1] = 0x70, a.c[2] = 0x45, a.c[3] = 0xc1。如有a.c[0] = 0xa4, a.c[1] = 0x70, a.c[2] = 0x45, a.c[3] = 0xc1,則a.f =-12.34。使用這種方式傳輸浮點(diǎn)數(shù),數(shù)據(jù)是不會(huì)丟失的,報(bào)文也更簡(jiǎn)單。

      2、將浮點(diǎn)數(shù)保存到文件中時(shí),保存為4個(gè)字節(jié)的char型數(shù)據(jù),節(jié)約空間。如果保存為文本需要占用的字節(jié)數(shù)等于數(shù)值的字符的個(gè)數(shù),有可能占用1~20字節(jié),而用共用體的char型數(shù)據(jù),占用的空間大小固定為4字節(jié),對(duì)大量浮點(diǎn)數(shù)據(jù)的存儲(chǔ),節(jié)約的空間更多,分析保存的浮點(diǎn)數(shù)也是很方便的。

      3、用在強(qiáng)制類型轉(zhuǎn)換上。如將int數(shù)據(jù)轉(zhuǎn)為float,可以這樣使用union: a.i =1234;賦值后,a.f就是轉(zhuǎn)換后的值等于1234。

      第五篇:C語(yǔ)言中的EOF

      C語(yǔ)言中的EOF EOF是指文件的結(jié)束符,是一個(gè)宏定義.對(duì)于鍵盤輸入來(lái)說,getchar()只有在遇到文本結(jié)束標(biāo)記(ASCII編碼為26)時(shí)才會(huì)返回EOF,其它情況都會(huì)返回一個(gè)輸入符號(hào)值。所以對(duì)于這種程序,要想讓循環(huán)信息運(yùn)行,只能輸入這個(gè)文本結(jié)束標(biāo)記。輸入這個(gè)標(biāo)記有多種方法,常用的就是按F6鍵,或者按Ctrl-Z組合鍵,或者打開數(shù)字小鍵盤之后按住Alt鍵再依次按小鍵盤上的26兩個(gè)數(shù)字鍵最后放開Alt鍵,等,都可以輸入這個(gè)文本結(jié)束標(biāo)記。

      借助于getchar 與putchar 函數(shù),可以在不了解其它輸入/輸出知識(shí)的情況下編寫出數(shù)量驚人的有用的代碼。最簡(jiǎn)單的例子就是把輸入一次一個(gè)字符地復(fù)制到輸出,其基本思想如下: 讀一個(gè)字符

      while(該字符不是文件結(jié)束指示符)輸出剛讀入的字符 讀下一個(gè)字符

      將上述基本思想轉(zhuǎn)換為C語(yǔ)言程序?yàn)椋?#include /* copy input to output;1st version */ main(){ int c;c = getchar();while(c!= EOF){ putchar(c);c = getchar();} } 其中,關(guān)系運(yùn)算符!=表示“不等于”。

      字符在鍵盤、屏幕或其它的任何地方無(wú)論以什么形式表現(xiàn),它在機(jī)器內(nèi)部都是以位模式存儲(chǔ)的。char 類型專門用于存儲(chǔ)這種字符型數(shù)據(jù),當(dāng)然任何整型(int)也可以用于存儲(chǔ)字符型數(shù)據(jù)。因?yàn)槟承撛诘闹匾?,我們?cè)诖耸褂胕nt類型。

      這里需要解決如何區(qū)分文件中有效數(shù)據(jù)與輸入結(jié)束符的問題。C語(yǔ)言采取的解決方法是:

      在沒有輸入時(shí),getchar 函數(shù)將返回一個(gè)特殊值,這個(gè)特殊值與任何實(shí)際字符都不同。這個(gè)值稱為EOF(end of file,文件結(jié)束)。我們?cè)诼暶髯兞縞 的時(shí)候,必須讓它大到足以存放getchar函數(shù)返回的任何值。這里之所以不把c聲明成char類型,是因?yàn)樗仨氉銐虼螅四艽鎯?chǔ)任何可能的字符外還要能存儲(chǔ)文件結(jié)束符EOF。因此,我們將c聲明成int類型。

      EOF 定義在頭文件中,是個(gè)整型數(shù),其具體數(shù)值是什么并不重要,只要它與任何char類型的值都不相同即可。這里使用符號(hào)常量,可以確保程序不需要依賴于其對(duì)應(yīng)的任何特定的數(shù)值。

      對(duì)于經(jīng)驗(yàn)比較豐富的C 語(yǔ)言程序員,可以把這個(gè)字符復(fù)制程序編寫得更精煉一些。在C語(yǔ)言中,類似于c = getchar()之類的賦值操作是一個(gè)表達(dá)式,并且具有一個(gè)值,即賦值后左邊變量保存的值。也就是說,賦值可以作為更大的表達(dá)式的一部分出現(xiàn)。如果將為c賦值的操作放在while循環(huán)語(yǔ)句的測(cè)試部分中,上述字符復(fù)制程序便可以改寫成下列形式: #include /* copy input to output;2nd version */ main(){ int c;while((c = getchar())!= EOF)putchar(c);} 在該程序中,while 循環(huán)語(yǔ)句首先讀一個(gè)字符并將其賦值給c,然后測(cè)試該字符是否為文件結(jié)束標(biāo)志。如果該字符不是文件結(jié)束標(biāo)志,則執(zhí)行while語(yǔ)句體,并打印該字符。隨后重復(fù)執(zhí)行while語(yǔ)句。當(dāng)?shù)竭_(dá)輸入的結(jié)尾位置時(shí),while循環(huán)語(yǔ)句終止執(zhí)行,從而整個(gè)main函數(shù)執(zhí)行結(jié)束。以上這段程序?qū)⑤斎爰谢琯etchar函數(shù)在程序中只出現(xiàn)了一次,這樣就縮短了程序,整個(gè)程序看起來(lái)更緊湊。習(xí)慣這種風(fēng)格后,讀者就會(huì)發(fā)現(xiàn)按照這種方式編寫的程序更易閱讀。我們經(jīng)常會(huì)看到這種風(fēng)格。(不過,如果我們過多地使用這種類型的復(fù)雜語(yǔ)句,編寫的程序可能會(huì)很難理解,應(yīng)盡量避免這種情況。)對(duì)while語(yǔ)句的條件部分來(lái)說,賦值表達(dá)式兩邊的圓括號(hào)不能省略。不等于運(yùn)算符!=的優(yōu)先級(jí)比賦值運(yùn)算符=的優(yōu)先級(jí)要高,這樣,在不使用圓括號(hào)的情況下關(guān)系測(cè)試!=將在賦值=操作之前執(zhí)行。因此語(yǔ)句 c = getchar()!= EOF 等價(jià)于語(yǔ)句

      c =(getchar()!= EOF)

      下載4.2 C語(yǔ)言中的強(qiáng)制類型轉(zhuǎn)換(精選多篇)word格式文檔
      下載4.2 C語(yǔ)言中的強(qiáng)制類型轉(zhuǎn)換(精選多篇).doc
      將本文檔下載到自己電腦,方便修改和收藏,請(qǐng)勿使用迅雷等下載。
      點(diǎn)此處下載文檔

      文檔為doc格式


      聲明:本文內(nèi)容由互聯(lián)網(wǎng)用戶自發(fā)貢獻(xiàn)自行上傳,本網(wǎng)站不擁有所有權(quán),未作人工編輯處理,也不承擔(dān)相關(guān)法律責(zé)任。如果您發(fā)現(xiàn)有涉嫌版權(quán)的內(nèi)容,歡迎發(fā)送郵件至:645879355@qq.com 進(jìn)行舉報(bào),并提供相關(guān)證據(jù),工作人員會(huì)在5個(gè)工作日內(nèi)聯(lián)系你,一經(jīng)查實(shí),本站將立刻刪除涉嫌侵權(quán)內(nèi)容。

      相關(guān)范文推薦

        c語(yǔ)言中的正則表達(dá)式regex.h

        c語(yǔ)言中的正則表達(dá)式regex.h 如果用戶熟悉Linux下的sed、awk、grep或vi,那么對(duì)正則表達(dá)式這一概念肯定不會(huì)陌生。由于它可以極大地簡(jiǎn)化處理字符串時(shí)的復(fù)雜度,因此現(xiàn)在已經(jīng)在許......

        C語(yǔ)言中extern關(guān)鍵字詳解大全

        C語(yǔ)言中extern關(guān)鍵字詳解作者:華清遠(yuǎn)見武漢華嵌 技術(shù)支持 曹偉東內(nèi)容清單:1. 用extern聲明外部變量在一個(gè)文件內(nèi)聲明的外部變量在多個(gè)文件中聲明外部變量在多個(gè)文件......

        C語(yǔ)言中結(jié)構(gòu)體的使用

        腳踏實(shí)地,心無(wú)旁騖,珍惜分分秒秒。緊跟老師,夯實(shí)基礎(chǔ)。 什么是結(jié)構(gòu)體? 簡(jiǎn)單的來(lái)說 結(jié)構(gòu)體就是一個(gè)可以包含不同數(shù)據(jù)類型的一個(gè)結(jié)構(gòu) 它是一種可以自己定義的數(shù)據(jù)類型 它的特點(diǎn)和......

        C語(yǔ)言中變量的存儲(chǔ)類別

        一.C語(yǔ)言中,從變量的作用域角度來(lái)分,可以分為全局變量和局部變量。 二.變量值存在的時(shí)間角度來(lái)分,可以分為靜態(tài)存儲(chǔ)方式和動(dòng)態(tài)存儲(chǔ)方式。所謂靜態(tài)存儲(chǔ)方式是指在程序運(yùn)行期間有......

        C語(yǔ)言中浮點(diǎn)數(shù)的表示范圍淺析

        C語(yǔ)言中浮點(diǎn)數(shù)的表示范圍淺析 摘 要:浮點(diǎn)數(shù)是C語(yǔ)言中的一種數(shù)據(jù)類型,但在標(biāo)準(zhǔn)C中并沒有給出其具體的描述,即數(shù)的存儲(chǔ)格式及表示范圍。部分經(jīng)典的C語(yǔ)言程序設(shè)計(jì)教程中給出了浮點(diǎn)......

        c語(yǔ)言中void的作用[5篇范文]

        1.概述 許多初學(xué)者對(duì)C/C++語(yǔ)言中的void及void指針類型不甚理解,因此在使用上出現(xiàn)了一些錯(cuò)誤。本文將對(duì)void關(guān)鍵字的深刻含義進(jìn)行解說,并 詳述void及void指針類型的使用方法與......

        c語(yǔ)言中的整型常量和實(shí)型常量

        c語(yǔ)言中的整型常量和實(shí)型常量 整型常量和實(shí)型常量 1.整型常量 在 C 語(yǔ)言中,整型常量分為十進(jìn)制整型常量、八進(jìn)制整型常量和十六進(jìn)制整型常量三 種表示形式。 (1)十進(jìn)制整型常量......

        C語(yǔ)言中的幾種常見數(shù)據(jù)類型

        C語(yǔ)言中的幾種常見數(shù)據(jù)類型 整型(int) 一、整型數(shù)說明 加上不同的修飾符, 整型數(shù)有以下幾種類型; signed short int 有符號(hào)短整型數(shù)說明。簡(jiǎn)寫為short或int, 字長(zhǎng)為2字節(jié)共1......