A. 請問c語言中p-=1是強制換換把這是什麼轉換什麼意思求解,急,
-=是一個運算符而已,並不是什麼轉換。
p-=1等價於p=p-1;
另外還有*=, +=, /=, ^=,一般用於進行運算的運算符都能寫成這種形式。
如果是單純的-1操作,為了加快效率,最好用自增運算,如++p;這樣運算會在只cpu中運算,而不用去和內存交互,效率比較高。
B. C語言中,數據類型的隱式轉換與顯式轉換分別是個什麼意思
顯式轉換,就是強制轉換。在被轉換睜凳吵的表達式前加(類型),比如:(float)5,就是把5顯式轉換成float類型。
隱式轉換,就是不需要加強制轉換,系統會自動做這個操作,比如:
double k;
k=10;
10是int型,不需要顯式轉換,系統自動會把它轉為10.0。
(2)c語言狀態轉換什麼意思擴展閱讀:
隱式自動類型轉換:
C++語言編譯系統提供的粗此內部數據類型的隱式自動轉換規則如下:
1、執行算術運算時,低類型(短位元組)可以轉換為高類型(長位元組);例如: int型轉換成double型,char型轉換成int型等等;
2、賦值表達式中,等號右邊表達式的值的類型自動隱式地轉換為左邊變數的類型,並賦值給它;
3、函數調用時,將實參的值傳遞給形參,系悉侍統首先會自動隱式地把實參的值的類型轉換為形參的類型,然後再賦值給形參;
4、函數有返回值時,系統首先會自動隱式地將返回表達式的值的類型轉換為函數的返回類型,然後再賦值給調用函數返回。
C. C語言中強制類型轉換究竟改變了什麼
不同類型的變數在內存中有不同的存儲方式和不同長度,強制轉型前後有什麼不同都要轉換過來。例如int y=3;char x=(char)y;,他們只是長短不同,就把y的高3位元組全截掉,只把最低一個位元組賦給了x;反過來,若char y=3;int x=(int)y;,那麼,將把高3位元組全用0補齊。若是浮點數與整型數強制轉型,不僅存儲長度發生了變化,而且存儲方式也發生了變化:整數用補碼表示,而浮點數用階碼+原碼表示,都要一一轉換過來。還有指針變數,轉換也較復雜。強制轉型時鏈叢為目標類型設置一個臨時變數,棚森櫻輪換後就用這個臨時變數操作,一旦操作結束,臨時變數也消春洞失了,整個過程是由編譯器編譯時安排好了的。
D. C語言數據類型的自動轉換和強制轉換有什麼區別
一、指代不同
1、自動轉換:參與運算量的類型不同,則先轉換成磨顫同一類型,然後進行運瞎哪敗算。
2、強制轉換:是通過類型轉換運算來實現的。
二、方式不同
1、自動轉換:轉換按數據長度增加的方向進行,以保證精度不降低。如int型緩皮和long型運算時,先把int量轉成long型後再進行運算。
2、強制轉換:功能是把表達式的運算結果強制轉換成類型說明符所表示的類型。
三、特點不同
1、自動轉換:是在源類型和目標類型兼容以及目標類型廣於源類型時發生一個類型到另一類的轉換。
2、強制轉換:所有的浮點運算都是以雙精度進行的,即使僅含float單精度量運算的表達式,也要先轉換成double型,再作運算。