欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

C語言數(shù)據(jù)類型轉換實例代碼

 更新時間:2016年07月19日 17:55:32   投稿:lqh  
本文主要介紹C 語言數(shù)據(jù)類型轉換,這里通過代碼實例進行詳解,這是C語言基礎部分,需要的朋友可以參考下

數(shù)據(jù)類型轉換就是將數(shù)據(jù)(變量、表達式的結果)從一種類型轉換到另一種類型。例如,為了保存小數(shù)你可以將int類型的變量轉換為double類型。

數(shù)據(jù)類型轉換的一般格式為:

(type_name) expression

type_name為要轉換到的數(shù)據(jù)類型,expression為表達式。例如:

(float) a; //把a轉換為實型
(int)(x+y); //把x+y的結果轉換為整型
(float) 100; //將一個常量轉換為實型

【示例】將整數(shù)轉換為浮點數(shù):

#include <stdio.h>
int main(){
 int sum = 17, count = 5;
 double mean;
 mean = (double) sum / count;
 printf("Value of mean : %f\n", mean);
 return 0;
}

運行結果:

Value of mean : 3.400000

需要注意的是,類型轉換運算符( )的優(yōu)先級高于/ (double) sum / count會先將 sum 轉換為 double 類型,然后再進行除法運算。如果寫作(double) (sum / count) ,那么運行結果就是 3.000000。

這種由程序員顯式進行的轉換稱為強制類型轉換。除了強制類型轉換,在不同數(shù)據(jù)類型的混合運算中編譯器也會隱式地進行數(shù)據(jù)類型轉換,稱為自動類型轉換

自動類型轉換遵循下面的規(guī)則:

1.若參與運算的數(shù)據(jù)類型不同,則先轉換成同一類型,然后進行運算。

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

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

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

5.在賦值運算中,賦值號兩邊的數(shù)據(jù)類型不同時,需要把右邊表達式的類型將轉換為左邊變量的類型。如果右邊表達式的數(shù)據(jù)類型長度比左邊長時,將丟失一部分數(shù)據(jù),這樣會降低精度。

下圖表示了類型自動轉換的規(guī)則:

【示例】自動數(shù)據(jù)類型轉換。

#include<stdio.h>
int main(){
 float PI=3.14159;
 int s1, r=5;
 double s2;
 s1 = r*r*PI;
 s2 = r*r*PI;
 printf("s1=%d, s2=%f\n", s1, s2);
 return 0;
}

運行結果:

s1=78, s2=78.539753

在計算表達式r*r*PI時,r 和 PI 都轉換成double類型,表達式的結果也為double類型。但由于 s1 為整型,所以賦值運算的結果仍為整型,舍去了小數(shù)部分。

注意是將小數(shù)部分直接丟掉,而不是按照四舍五入向前舍入。

無論是強制轉換或是自動轉換,都只是為了本次運算的需要而對變量的數(shù)據(jù)長度進行的臨時性轉換,而不改變數(shù)據(jù)說明時對該變量定義的類型。

請看下面的例子:

#include<stdio.h>
int main(){
 float f=5.75;
 printf("(int)f=%d, f=%f\n",(int)f, f);
 return 0;
}

運行結果:

(int)f=5, f=5.750000

以上就是對 C語言數(shù)據(jù)類型的轉換的實例詳解,希望能幫助學習 C語言基礎知識的同學。

相關文章

  • C語言堆結構處理TopK問題詳解

    C語言堆結構處理TopK問題詳解

    TopK問題即在N個數(shù)中找出最大的前K個,這篇文章將詳細講解如何利用小根堆的方法解決TopK問題,文中代碼具有一定參考價值,快跟隨小編一起學習一下吧
    2022-06-06
  • C語言函數(shù)傳遞數(shù)組和傳遞地址的區(qū)別你知道嗎

    C語言函數(shù)傳遞數(shù)組和傳遞地址的區(qū)別你知道嗎

    這篇文章主要介紹了C語言中數(shù)組作為函數(shù)的參數(shù)以及返回值的使用簡單入門,這里以一維數(shù)組作為基本條件進行例子講解,需要的朋友可以參考下
    2021-09-09
  • C語言代碼實現(xiàn)猜數(shù)字

    C語言代碼實現(xiàn)猜數(shù)字

    這篇文章主要為大家詳細介紹了C語言代碼實現(xiàn)猜數(shù)字,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2020-11-11
  • c語言輸出字符串中最大對稱子串長度的3種解決方案

    c語言輸出字符串中最大對稱子串長度的3種解決方案

    這篇文章主要介紹了c語言輸出字符串中最大對稱子串長度的3種解決方案,需要的朋友可以參考下
    2014-03-03
  • 使用VScode搭建ROS開發(fā)環(huán)境的教程詳解

    使用VScode搭建ROS開發(fā)環(huán)境的教程詳解

    這篇文章主要介紹了使用VScode搭建ROS開發(fā)環(huán)境,本文給大家介紹的非常詳細,對大家的學習或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2020-08-08
  • C語言數(shù)據(jù)結構超詳細講解單向鏈表

    C語言數(shù)據(jù)結構超詳細講解單向鏈表

    鏈表可以說是一種最為基礎的數(shù)據(jù)結構了,而單向鏈表更是基礎中的基礎。鏈表是由一組元素以特定的順序組合或鏈接在一起的,不同元素之間在邏輯上相鄰,但是在物理上并不一定相鄰。在維護一組數(shù)據(jù)集合時,就可以使用鏈表,這一點和數(shù)組很相似
    2022-03-03
  • c語言合并兩個已排序數(shù)組的示例(c語言數(shù)組排序)

    c語言合并兩個已排序數(shù)組的示例(c語言數(shù)組排序)

    如何將兩個已排序數(shù)組合并成一個排序數(shù)組,下面我們給出使用c語言合并兩個已排序數(shù)組的示例,需要的朋友可以參考下
    2014-03-03
  • 詳細聊一聊algorithm中的排序算法

    詳細聊一聊algorithm中的排序算法

    <algorithm>是C++標準程序庫中的一個頭文件,定義了C++?STL標準中的基礎性的算法(均為函數(shù)模板),下面這篇文章主要給大家介紹了關于algorithm中排序算法的相關資料,需要的朋友可以參考下
    2022-06-06
  • C++20 特性 協(xié)程 Coroutines(1)

    C++20 特性 協(xié)程 Coroutines(1)

    這篇文章主要給大家分享得是C++20 得特性 協(xié)程 Coroutines,下面文章內(nèi)容我們將來具體介紹什么是協(xié)程,協(xié)程得好處等知識點,需要的朋友可以參考一下
    2021-10-10
  • OpenCV實現(xiàn)圖像腐蝕

    OpenCV實現(xiàn)圖像腐蝕

    這篇文章主要為大家詳細介紹了OpenCV實現(xiàn)圖像腐蝕,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2021-06-06

最新評論