雷火电竞-中国电竞赛事及体育赛事平台

歡迎來到入門教程網(wǎng)!

C語言

當(dāng)前位置:主頁 > 軟件編程 > C語言 >

淺談c語言中類型隱性轉(zhuǎn)換的坑

來源:本站原創(chuàng)|時(shí)間:2020-01-10|欄目:C語言|點(diǎ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è)參考,也希望大家多多支持我們。

上一篇:C語言 共用體(Union)詳解及示例代碼

欄    目:C語言

下一篇:C語言 以字符形式讀寫文件詳解及示例代碼

本文標(biāo)題:淺談c語言中類型隱性轉(zhuǎn)換的坑

本文地址:http://www.jygsgssxh.com/a1/Cyuyan/2079.html

網(wǎng)頁制作CMS教程網(wǎng)絡(luò)編程軟件編程腳本語言數(shù)據(jù)庫服務(wù)器

如果侵犯了您的權(quán)利,請與我們聯(lián)系,我們將在24小時(shí)內(nèi)進(jìn)行處理、任何非本站因素導(dǎo)致的法律后果,本站均不負(fù)任何責(zé)任。

聯(lián)系QQ:835971066 | 郵箱:835971066#qq.com(#換成@)

Copyright © 2002-2020 腳本教程網(wǎng) 版權(quán)所有