最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

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++實現(xiàn)Go的defer功能(示例代碼)

    C++實現(xiàn)Go的defer功能(示例代碼)

    defer和go一樣都是Go語言提供的關鍵字。defer用于資源的釋放,會在函數(shù)返回之前進行調用。接下來通過本文給大家介紹C++實現(xiàn)Go的defer功能,感興趣的朋友跟隨小編一起看看吧
    2021-07-07
  • 深入C中常用的三種排序方法總結以及探討分析

    深入C中常用的三種排序方法總結以及探討分析

    本篇文章是對C中常用的三種排序方法總結以及探討分析的概述,需要的朋友參考下
    2013-05-05
  • C語言中的字符(char)詳細講解

    C語言中的字符(char)詳細講解

    本篇文章主要介紹C語言中char的知識,并附有代碼實例,以便大家在學習的時候更好的理解,有需要的可以看一下
    2016-07-07
  • Qt實現(xiàn)字符串生成二維碼功能

    Qt實現(xiàn)字符串生成二維碼功能

    這篇文章主要介紹了如何利用Qt實現(xiàn)字符串生成二維碼功能,文中的實現(xiàn)過程講解詳細,對我們學習Qt有一定的幫助,需要的可以參考一下
    2022-01-01
  • C語言實現(xiàn)Fibonacci數(shù)列遞歸

    C語言實現(xiàn)Fibonacci數(shù)列遞歸

    這篇文章主要介紹了C語言實現(xiàn)Fibonacci數(shù)列遞歸,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2020-02-02
  • C++中的可移植性和跨平臺開發(fā)教程詳解

    C++中的可移植性和跨平臺開發(fā)教程詳解

    這篇文章主要為大家介紹了C++中的可移植性和跨平臺開發(fā)教程詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪
    2023-05-05
  • C語言實現(xiàn)運動會管理系統(tǒng)

    C語言實現(xiàn)運動會管理系統(tǒng)

    這篇文章主要為大家詳細介紹了C語言實現(xiàn)運動會管理系統(tǒng),文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2022-05-05
  • 一文詳解C++11中的lambda函數(shù)

    一文詳解C++11中的lambda函數(shù)

    小編可以明確告訴大家:lambda函數(shù)是C++11中最重要的,使用最廣泛的,最具現(xiàn)代風格的內(nèi)容,lambda函數(shù)的出現(xiàn)改變了C++編程的思維方式。所以快和小編學習一下C++11中l(wèi)ambda函數(shù)的使用吧
    2023-02-02
  • C/C++詳解實現(xiàn)二層轉發(fā)

    C/C++詳解實現(xiàn)二層轉發(fā)

    數(shù)據(jù)鏈路層是開放系統(tǒng)互連 (OSI) 模型中的第二層,該層用于通過 LAN 等單一網(wǎng)絡進行通信的節(jié)點,第二層數(shù)據(jù)包不能從一個網(wǎng)絡傳輸?shù)搅硪粋€網(wǎng)絡。而二層轉發(fā)是根據(jù)報文的目的MAC直接進行轉發(fā),轉發(fā)過程中不用對報文的頭部做任何的修改
    2022-05-05
  • VS2019中CMake項目的簡單使用方法

    VS2019中CMake項目的簡單使用方法

    這篇文章主要介紹了VS2019中CMake項目的簡單使用方法,需要的朋友可以參考下
    2020-02-02

最新評論

邵东县| 韶关市| 英德市| 永安市| 甘南县| 综艺| 兴化市| 北川| 镇安县| 陵川县| 岑溪市| 白朗县| 信阳市| 昔阳县| 罗平县| 金山区| 千阳县| 石家庄市| 西安市| 浪卡子县| 搜索| 常德市| 鹿邑县| 武陟县| 平凉市| 榆林市| 陆丰市| 朝阳市| 辽源市| 丹棱县| 临桂县| 淮南市| 扎赉特旗| 仙居县| 通榆县| 金川县| 平昌县| 西平县| 德昌县| 江山市| 南华县|