淺談c語言中類型隱性轉(zhuǎn)換的坑
謹(jǐn)記:在C語言中,當(dāng)兩種不同類型之間運(yùn)算時(shí),低字節(jié)長度類型會向高自己長度類型轉(zhuǎn)換,有符號會向無符號類型轉(zhuǎn)換。
舉例子如下:
#include <stdio.h>
void func(void)
{
  int i = 1;
  unsigned char c1 = 1;
  signed char  c2 = -1;
  if (c2 > i){
    printf("\r\n -1 > 1");
  }
  else{
    printf("\r\n -1 <= 1");
  }
  if (c2 > c1){
    printf("\r\n -1 > 1");
  }
  else {
    printf("\r\n -1 <= 1");
  }
  printf ("\n");
}
int main()
{
  func();
  return 0;
}
輸出:
-1 <= 1
-1 <= 1
當(dāng)C2與i進(jìn)行比較時(shí),由于C2是有符號8位,i是無符號32位,根據(jù)C語言的規(guī)則,c2被轉(zhuǎn)換成32位,即-1的補(bǔ)碼,故會得出-1>1的結(jié)論。
而后面一個(gè)-1<1的情況是 c2轉(zhuǎn)化成無符號8位整數(shù),即255,255, 所以大于1。
以上這篇淺談c語言中類型隱性轉(zhuǎn)換的坑就是小編分享給大家的全部內(nèi)容了,希望能給大家一個(gè)參考,也希望大家多多支持我們。
您可能感興趣的文章
- 04-02c語言函數(shù)調(diào)用后清空內(nèi)存 c語言調(diào)用函數(shù)刪除字符
 - 04-02c語言的正則匹配函數(shù) c語言正則表達(dá)式函數(shù)庫
 - 04-02func函數(shù)+在C語言 func函數(shù)在c語言中
 - 04-02c語言中對數(shù)函數(shù)的表達(dá)式 c語言中對數(shù)怎么表達(dá)
 - 04-02c語言用函數(shù)寫分段 用c語言表示分段函數(shù)
 - 04-02c語言編寫函數(shù)冒泡排序 c語言冒泡排序法函數(shù)
 - 04-02c語言沒有round函數(shù) round c語言
 - 04-02c語言分段函數(shù)怎么求 用c語言求分段函數(shù)
 - 04-02C語言中怎么打出三角函數(shù) c語言中怎么打出三角函數(shù)的值
 - 04-02c語言調(diào)用函數(shù)求fibo C語言調(diào)用函數(shù)求階乘
 


閱讀排行
本欄相關(guān)
- 04-02c語言函數(shù)調(diào)用后清空內(nèi)存 c語言調(diào)用
 - 04-02func函數(shù)+在C語言 func函數(shù)在c語言中
 - 04-02c語言的正則匹配函數(shù) c語言正則表達(dá)
 - 04-02c語言用函數(shù)寫分段 用c語言表示分段
 - 04-02c語言中對數(shù)函數(shù)的表達(dá)式 c語言中對
 - 04-02c語言編寫函數(shù)冒泡排序 c語言冒泡排
 - 04-02c語言沒有round函數(shù) round c語言
 - 04-02c語言分段函數(shù)怎么求 用c語言求分段
 - 04-02C語言中怎么打出三角函數(shù) c語言中怎
 - 04-02c語言調(diào)用函數(shù)求fibo C語言調(diào)用函數(shù)求
 
隨機(jī)閱讀
- 04-02jquery與jsp,用jquery
 - 01-11ajax實(shí)現(xiàn)頁面的局部加載
 - 01-10C#中split用法實(shí)例總結(jié)
 - 08-05dedecms(織夢)副欄目數(shù)量限制代碼修改
 - 01-10delphi制作wav文件的方法
 - 01-10使用C語言求解撲克牌的順子及n個(gè)骰子
 - 08-05DEDE織夢data目錄下的sessions文件夾有什
 - 08-05織夢dedecms什么時(shí)候用欄目交叉功能?
 - 01-11Mac OSX 打開原生自帶讀寫NTFS功能(圖文
 - 01-10SublimeText編譯C開發(fā)環(huán)境設(shè)置
 


