亚洲一级免费看,特黄特色大片免费观看播放器,777毛片,久久久久国产一区二区三区四区,欧美三级一区二区,国产精品一区二区久久久久,人人澡人人草

C語(yǔ)言

C語(yǔ)言類(lèi)型轉(zhuǎn)換的方法

時(shí)間:2025-02-21 03:15:47 C語(yǔ)言 我要投稿
  • 相關(guān)推薦

C語(yǔ)言類(lèi)型轉(zhuǎn)換的方法

  C語(yǔ)言是一門(mén)面向過(guò)程的計(jì)算機(jī)編程語(yǔ)言,與C++、C#、Java等面向?qū)ο缶幊陶Z(yǔ)言有所不同。下面是小編帶來(lái)的C語(yǔ)言類(lèi)型轉(zhuǎn)換的方法,希望對(duì)你有幫助。

  我們?cè)诰幊绦虻臅r(shí)候,經(jīng)常會(huì)出現(xiàn)不同類(lèi)型的數(shù)據(jù)之間需要計(jì)算、賦值,必然會(huì)出現(xiàn)類(lèi)型轉(zhuǎn)換問(wèn)題。C語(yǔ)言的變量數(shù)據(jù)類(lèi)型是可以轉(zhuǎn)換的,轉(zhuǎn)換的方法有兩類(lèi),一種是自動(dòng)轉(zhuǎn)換,一種是強(qiáng)制轉(zhuǎn)換。

  自動(dòng)轉(zhuǎn)換

  這種轉(zhuǎn)換發(fā)生在不同數(shù)據(jù)類(lèi)型的量混合運(yùn)算或賦值時(shí),由編譯系統(tǒng)自動(dòng)完成。自動(dòng)轉(zhuǎn)換遵循以下規(guī)則:

  1、若參與運(yùn)算量的類(lèi)型不同,則先轉(zhuǎn)換成同一類(lèi)型,然后進(jìn)行運(yùn)算。

  2、轉(zhuǎn)換時(shí)按數(shù)據(jù)長(zhǎng)度增加的方向進(jìn)行,以保證精度不降低。如int型和long型運(yùn)算時(shí),先把int量轉(zhuǎn)成long型后再進(jìn)行運(yùn)算。

  3、所有的浮點(diǎn)運(yùn)算都是以雙精度進(jìn)行的,即使僅含float單精度量運(yùn)算的表達(dá)式,也要先轉(zhuǎn)換成double型,再作運(yùn)算。

  4、char型和short型參與運(yùn)算時(shí),必須先轉(zhuǎn)換成int型。

  5、在賦值運(yùn)算中,賦值號(hào)兩邊量的數(shù)據(jù)類(lèi)型不同時(shí),賦值號(hào)右邊量的類(lèi)型將轉(zhuǎn)換為左邊量的類(lèi)型。如果右邊量的數(shù)據(jù)類(lèi)型長(zhǎng)度左邊長(zhǎng)時(shí),將丟失一部分?jǐn)?shù)據(jù),這樣會(huì)降低精度,丟失的部分按四舍五入向前舍入。

  強(qiáng)制類(lèi)型轉(zhuǎn)換

  強(qiáng)制類(lèi)型轉(zhuǎn)換是通過(guò)類(lèi)型轉(zhuǎn)換運(yùn)算來(lái)實(shí)現(xiàn)的,形式為在要轉(zhuǎn)換的數(shù)值或者表達(dá)式前用小括號(hào)將要類(lèi)型括起來(lái)。比如要將double類(lèi)型的數(shù)據(jù)強(qiáng)制轉(zhuǎn)換為int型:

  double d = 1.234;

  float f = 5.678;

  int i = (int)d;

  也可以是整個(gè)表達(dá)式的轉(zhuǎn)換:

  long l = (long)(d + f);

  在使用強(qiáng)制轉(zhuǎn)換時(shí)應(yīng)注意以下問(wèn)題:

  1、類(lèi)型說(shuō)明符和表達(dá)式都必須加括號(hào)(單個(gè)變量可以不加括號(hào)),如把(int)(x+y)寫(xiě)成(int)x+y則成了把x轉(zhuǎn)換成int型之后再與y相加了。

  2、無(wú)論是強(qiáng)制轉(zhuǎn)換或是自動(dòng)轉(zhuǎn)換,都只是為了本次運(yùn)算的需要而對(duì)變量的數(shù)據(jù)長(zhǎng)度進(jìn)行的臨時(shí)性轉(zhuǎn)換,而不改變數(shù)據(jù)說(shuō)明時(shí)對(duì)該變量定義的類(lèi)型,也就是被強(qiáng)制轉(zhuǎn)換的變量或表達(dá)式本身還是原來(lái)的類(lèi)型。

  拓展閱讀

  C語(yǔ)言指針變量的類(lèi)型

  對(duì)指針變量的類(lèi)型說(shuō)明包括三個(gè)內(nèi)容:

  (1)指針類(lèi)型說(shuō)明,即定義變量為一個(gè)指針變量;

  (2)指針變量名;

  (3)變量值(指針)所指向的變量的數(shù)據(jù)類(lèi)型。

  其一般形式為: 類(lèi)型說(shuō)明符 *變量名;

  其中,*表示這是一個(gè)指針變量,變量名即為定義的指針變量名,類(lèi)型說(shuō)明符表示本指針變量所指向的變量的數(shù)據(jù)類(lèi)型。

  例如: int *p1;表示p1是一個(gè)指針變量,它的值是某個(gè)整型變量的地址。 或者說(shuō)p1指向一個(gè)整型變量。至于p1究竟指向哪一個(gè)整型變量, 應(yīng)由向p1賦予的地址來(lái)決定。

  再如:

  staic int *p2; /*p2是指向靜態(tài)整型變量的指針變量*/

  float *p3; /*p3是指向浮點(diǎn)變量的指針變量*/

  char *p4; /*p4是指向字符變量的指針變量*/ 應(yīng)該注意的是,一個(gè)指針變量只能指向同類(lèi)型的變量,如P3 只能指向浮點(diǎn)變量,不能時(shí)而指向一個(gè)浮點(diǎn)變量, 時(shí)而又指向一個(gè)字符變量。

  指針變量的賦值

  指針變量同普通變量一樣,使用之前不僅要定義說(shuō)明, 而且必須賦予具體的值。未經(jīng)賦值的指針變量不能使用, 否則將造成系統(tǒng)混亂,甚至死機(jī)。指針變量的賦值只能賦予地址, 決不能賦予任何其它數(shù)據(jù),否則將引起錯(cuò)誤。在C語(yǔ)言中, 變量的地址是由編譯系統(tǒng)分配的,對(duì)用戶完全透明,用戶不知道變量的具體地址。 C語(yǔ)言中提供了地址運(yùn)算符&來(lái)表示變量的地址。其一般形式為: & 變量名; 如&a變示變量a的地址,&b表示變量b的地址。 變量本身必須預(yù)先說(shuō)明。設(shè)有指向整型變量的指針變量p,如要把整型變量a 的地址賦予p可以有以下兩種方式:

  (1)指針變量初始化的方法 int a;

  int *p=&a;

  (2)賦值語(yǔ)句的方法 int a;

  int *p;

  p=&a;

  不允許把一個(gè)數(shù)賦予指針變量,故下面的賦值是錯(cuò)誤的: int *p;p=1000; 被賦值的指針變量前不能再加“*”說(shuō)明符,如寫(xiě)為*p=&a 也是錯(cuò)誤的

【C語(yǔ)言類(lèi)型轉(zhuǎn)換的方法】相關(guān)文章:

C語(yǔ)言數(shù)據(jù)類(lèi)型轉(zhuǎn)換02-28

C語(yǔ)言基礎(chǔ)之?dāng)?shù)據(jù)類(lèi)型轉(zhuǎn)換03-11

C語(yǔ)言數(shù)據(jù)類(lèi)型轉(zhuǎn)換實(shí)例代碼04-26

C++的類(lèi)型轉(zhuǎn)換介紹05-03

在C語(yǔ)言中轉(zhuǎn)換時(shí)間的基本方法07-14

java類(lèi)型的字符轉(zhuǎn)換的方法02-26

C語(yǔ)言變量的類(lèi)型04-08

C語(yǔ)言常量的類(lèi)型03-19

c語(yǔ)言引用類(lèi)型和值類(lèi)型05-01