亚洲精品中文字幕无乱码_久久亚洲精品无码AV大片_最新国产免费Av网址_国产精品3级片

C語言

C語言類型轉換的方法

時間:2024-08-05 07:47:18 C語言 我要投稿
  • 相關推薦

C語言類型轉換的方法

  C語言是一門面向過程的計算機編程語言,與C++、C#、Java等面向對象編程語言有所不同。下面是小編帶來的C語言類型轉換的方法,希望對你有幫助。

  我們在編程序的時候,經常會出現不同類型的數據之間需要計算、賦值,必然會出現類型轉換問題。C語言的變量數據類型是可以轉換的,轉換的方法有兩類,一種是自動轉換,一種是強制轉換。

  自動轉換

  這種轉換發(fā)生在不同數據類型的量混合運算或賦值時,由編譯系統(tǒng)自動完成。自動轉換遵循以下規(guī)則:

  1、若參與運算量的類型不同,則先轉換成同一類型,然后進行運算。

  2、轉換時按數據長度增加的方向進行,以保證精度不降低。如int型和long型運算時,先把int量轉成long型后再進行運算。

  3、所有的浮點運算都是以雙精度進行的,即使僅含float單精度量運算的表達式,也要先轉換成double型,再作運算。

  4、char型和short型參與運算時,必須先轉換成int型。

  5、在賦值運算中,賦值號兩邊量的數據類型不同時,賦值號右邊量的類型將轉換為左邊量的類型。如果右邊量的數據類型長度左邊長時,將丟失一部分數據,這樣會降低精度,丟失的部分按四舍五入向前舍入。

  強制類型轉換

  強制類型轉換是通過類型轉換運算來實現的,形式為在要轉換的數值或者表達式前用小括號將要類型括起來。比如要將double類型的數據強制轉換為int型:

  double d = 1.234;

  float f = 5.678;

  int i = (int)d;

  也可以是整個表達式的轉換:

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

  在使用強制轉換時應注意以下問題:

  1、類型說明符和表達式都必須加括號(單個變量可以不加括號),如把(int)(x+y)寫成(int)x+y則成了把x轉換成int型之后再與y相加了。

  2、無論是強制轉換或是自動轉換,都只是為了本次運算的需要而對變量的數據長度進行的臨時性轉換,而不改變數據說明時對該變量定義的類型,也就是被強制轉換的變量或表達式本身還是原來的類型。

  拓展閱讀

  C語言指針變量的類型

  對指針變量的類型說明包括三個內容:

  (1)指針類型說明,即定義變量為一個指針變量;

  (2)指針變量名;

  (3)變量值(指針)所指向的變量的數據類型。

  其一般形式為: 類型說明符 *變量名;

  其中,*表示這是一個指針變量,變量名即為定義的指針變量名,類型說明符表示本指針變量所指向的變量的數據類型。

  例如: int *p1;表示p1是一個指針變量,它的值是某個整型變量的地址。 或者說p1指向一個整型變量。至于p1究竟指向哪一個整型變量, 應由向p1賦予的地址來決定。

  再如:

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

  float *p3; /*p3是指向浮點變量的指針變量*/

  char *p4; /*p4是指向字符變量的指針變量*/ 應該注意的是,一個指針變量只能指向同類型的變量,如P3 只能指向浮點變量,不能時而指向一個浮點變量, 時而又指向一個字符變量。

  指針變量的賦值

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

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

  int *p=&a;

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

  int *p;

  p=&a;

  不允許把一個數賦予指針變量,故下面的賦值是錯誤的: int *p;p=1000; 被賦值的指針變量前不能再加“*”說明符,如寫為*p=&a 也是錯誤的

【C語言類型轉換的方法】相關文章:

C語言基礎之數據類型轉換09-23

C語言的枚舉類型知識07-22

C語言的reduce方法應用10-22

C語言的冒泡排序方法08-22

C++類的轉換10-17

Java程序調用C/C++語言函數的方法07-31

C語言返回多個值的方法07-07

Java數據類型轉換08-04

Java中float類型的范圍及其與十六進制的轉換方法06-18

C語言入門的基本學習方法09-29