日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程语言 > c/c++ >内容正文

c/c++

c++ cstring 转换 char_【揭秘】C语言类型转换时发生了什么?

發布時間:2024/9/15 c/c++ 46 豆豆
生活随笔 收集整理的這篇文章主要介紹了 c++ cstring 转换 char_【揭秘】C语言类型转换时发生了什么? 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

ID:技術讓夢想更偉大

作者:李肖遙

【揭秘】C語言類型轉換時發生了什么?

在C語言中,數據類型指的是用于聲明不同類型的變量或函數的一個廣泛的系統,我們常用的算術類型包括兩種類型:整數類型和浮點類型。那么相互之間具體是怎么轉化的呢?

了解一下類型轉換

不同數據類型的存儲大小和值范圍是不一樣的,程序在初始化的時候就已經設定了,例如:

int a = 9; float b = 8.5;

a,b占的字節大小不一樣,這個我們應該都知道,在C語言中一個表達式允許不同類型的數據進行運算,例如:

int a = 9; float b = 8.5,c; c = a + b;

因為計算機硬件在進行算術操作時,要求各操作數的類型具有相同的存儲位數以及一樣的存儲方式,所以就出現了類型轉換。

對于某些類型的轉換,編譯器可以隱式地自動進行,這種轉換稱為自動類型轉換;

而有些類型轉換需要程序員顯式指明,那么通常把這種轉換稱為強制類型轉換。

自動類型轉換

自動轉換是在源類型和目標類型兼容以及目標類型廣于源類型時發生一個類型到另一類的轉換。我們先來看一段代碼

//vs2019 //來源:技術讓夢想更偉大 //作者:李肖遙 #include <stdio.h> int main() {//定義一個整型指針變量pPointint* pPoint;//定義基本的數據的類型char c;short s;int i;long l;float f;double d;//將整型浮點型數據賦值給指針類型pPoint = c;pPoint = s;pPoint = i;pPoint = l;pPoint = f;pPoint = d;return 0; }

由于指針變量和整型、浮點這些數據型的類型是不能相互賦值的,編譯報錯輸出:

那么我們把同類型數據類型進行運算后賦值呢?

//vs2019 //來源:技術讓夢想更偉大 //作者:李肖遙 #include <stdio.h> int main() {//定義一個整型指針變量pPointint* pPoint;//定義基本的數據的類型char c;short s;int i;long l;float f;double d;//將整型浮點型數據運算之后賦值給指針類型pPoint = c + c;pPoint = s + s;pPoint = i + i;pPoint = l + l;pPoint = f + f;pPoint = d + d;return 0; }
  • char同類型運算,結果是一個int類型。
  • short同類型運算,結果是一個int類型。
  • int同類型運算,結果是一個int類型。
  • long同類型運算,結果是一個long類型。
  • float同類型運算,結果是一個float類型。
  • double同類型運算,結果是一個double類型。

如下圖所示:

同類型運算中:

  • 整型:比int小的,都會轉換成int,比int大的不變。
  • 浮點:不變。

那么我們把不同類型數據類型進行運算后賦值呢?

//vs2019 //來源:技術讓夢想更偉大 //作者:李肖遙 #include <stdio.h> int main() {//定義一個整型指針變量pPointint* pPoint;//定義基本的數據的類型char c;short s;int i;long l;float f;double d;//將整型浮點型數據混合運算賦值給指針類型pPoint = c + s; // char + short = intpPoint = c + i; // char + int = intpPoint = c + l; // char + long = intpPoint = c + f; // char + float = longpPoint = c + d; // char + double = floatreturn 0; }
  • char類型與short類型運算,結果是一個int類型。
  • char類型與int類型運算,結果是一個int類型。
  • char類型與long類型運算,結果是一個long類型。
  • char類型與float類型運算,結果是一個float類型。
  • char類型與double類型運算,結果是一個double類型。

結果如下圖所示:

可以得出在不同類型運算中:

  • 如果兩邊均比int小或等于int,那么結果為int。
  • 如果兩邊有比int大的,那么結果為比int大的類型。

我們得到結論如圖:

  • 整型類型級別從低到高依次為:

int -> unsigned int -> long -> unsigned long -> long long -> unsigned long long

  • 浮點型級別從低到高依次為:

float -> double

自動轉換規則:

  • 圖中橫向箭頭表示必須的轉換,如兩個float型數參加運算,雖然它們類型相同,但仍要先轉成double型再進行運算,結果亦為double型。
  • 圖中縱向箭頭表示當運算符兩邊的運算數為不同類型時的轉換,如一個long 型數據與一個int型數據一起運算,需要先將int型數據轉換為long型, 然后兩者再進行運算,結果為long型。
  • 當較高類型的數據轉換為較低類型時,則可能有些數據丟失。
  • 當較低類型的數據轉換為較高類型時,一般只是形式上有所改變, 而不影響數據的實質內容。
  • 所有這些轉換都是由系統自動進行的,使用時你只需從中了解結果的類型即可。

強制類型轉換

強制類型轉換是通過類型轉換運算來實現的。其一般形式為:

(類型說明符) (表達式)

其作用就是把表達式的運算結果強制轉換成類型說明符所表示的類型的值。

//vs2019 //來源:技術讓夢想更偉大 //作者:李肖遙 #include<stdio.h> #include<string.h>int main() {float f,x=1.3,y=1.4;int i = 4,a,b;a = x + y;b = (int)(x+y);f = 10/i;printf("a=%d,b=%d,f=%f,x=%f,y=%fn",a,b,f,x,y); }

運行結果如下:

我們從中可以看到,雖然x,y變強制轉換int型,但是最后輸出的值不變,強制類型轉換沒有影響x和y變量原本的類型。而上圖警告已經說明了一切。

注意:在C語言中,對一個變量賦值的時候,這個變量初始定義的類型包含了兩層含義:

  • 這個數據類型表示的內存空間的大小。
  • 編譯器把設定的數值放到這個內存空間,是數據類型的存儲方式解析后存進去的。
  • 總結強調一點

    進行強制類型轉換后,內存空間里面的內容是不會發生改變的,改變的是運算時的臨時數據對象的類型,是你去讀取這個內存空間時的解析方法。所以,一定要對這個數據類型的內存空間和解析方式有一個清晰的認知。

    總結

    以上是生活随笔為你收集整理的c++ cstring 转换 char_【揭秘】C语言类型转换时发生了什么?的全部內容,希望文章能夠幫你解決所遇到的問題。

    如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。

    主站蜘蛛池模板: 五月天六月色 | 丰满岳跪趴高撅肥臀尤物在线观看 | 国产精品一区二区三区高潮 | 在线观看第一页 | 婷婷丁香六月 | 最新精品在线 | 中文字幕不卡在线观看 | 中文日韩在线 | 美女被叉叉的影院 | 欧美综合一区 | 久热国产精品 | 日韩视频在线观看免费 | 青青草国产在线观看 | 国产午夜精品理论片在线 | 亚洲成人av一区二区 | 人妻丰满熟妇av无码区免 | 这里只有精品视频在线观看 | 91性高潮久久久久久久久 | 综合色导航 | 欧美亚洲专区 | 免费黄色小视频网站 | 国产亚洲欧美日韩精品 | 少妇久久久久 | va在线看| 亚洲在线免费看 | 午夜秋霞网| 陪读偷伦初尝小说 | 国产精品福利一区二区三区 | missav | 免费高清av在线看 | 美女羞羞动态图 | 6996电视影片免费看 | www.色就是色.com | 人妻 日韩精品 中文字幕 | 麻豆亚洲av熟女国产一区二 | 成人av在线网站 | 日韩av在线免费播放 | www.久久婷婷 | 亚洲国产精品激情在线观看 | 665566综合网| 中文字幕一区二区av | 好了av在线| 欧美三日本三级少妇三级99观看视频 | 香蕉视频网页版 | 奇米影视一区二区三区 | 在线观看www视频 | 久久久久久无码精品人妻一区二区 | 97超碰在| 亚洲人人人 | 狠狠久久婷婷 | 国产精品98 | 穿情趣内衣被c到高潮视频 欧美性猛交xxxx黑人猛交 | 国内自拍欧美 | 青青在线播放 | 国产精品1 | 天天射天天搞 | 性按摩玩人妻hd中文字幕 | 天天操天天操天天操 | 自拍偷拍2019 | 午夜一级大片 | 大尺度做爰无遮挡露器官 | 国产在线免费视频 | 97视频在线免费观看 | 特黄特黄视频 | 国产亚洲一区二区三区在线观看 | 最新啪啪网站 | 亚洲成人一级 | 婷婷调教口舌奴ⅴk | 伊伊成人 | 亚洲五月综合 | 樱桃成人精品视频在线播放 | 日韩成人片 | 国产一久久 | 激情自拍偷拍 | xzjzjzjzjzj欧美大片 | 三级黄色网 | 不卡影院 | 亚洲中文字幕无码专区 | 久久福利精品 | jzzjzzjzz亚洲成熟少妇 | av黄色免费在线观看 | 精品一区精品二区 | 美国黄色一级大片 | 久久福利网 | 国产91精品久久久久 | 手机成人在线 | 秋霞在线一区 | 最新中文字幕视频 | 欧美91看片特黄aaaa | 国产在线国偷精品免费看 | 男女无遮挡免费视频 | 婷婷色一区二区三区 | 国产97色在线 | 国产 | 欧美第九页 | 久操影视 | 久久国产精品一区二区 | 久久久久久久久久一区 | 三上悠亚在线一区 | 永久免费在线播放 | 国产日比视频 |