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

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

和在c语言,?和:在C语言中的详解

發布時間:2025/3/15 编程问答 23 豆豆
生活随笔 收集整理的這篇文章主要介紹了 和在c语言,?和:在C语言中的详解 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

三元操作符 ?和:直接可以看成是

?就是if語句

:簡單的翻譯成else語句,但是需要前后放上執行程序。

(1)舉例說明:A > B ? A > C ? A : C : B > C ? B : C;這條語句代表什么意思呢?我們把if和esle帶入進入看

if(A>B)

{

if(A>C)

{執行程序A}

else

{執行程序C}

}

else

{

執行程序

if (B>C)

{執行程序B}

else

{執行程序C}

}

(2)不過這樣看上去還是太復雜,我們把程序分類,加上括號后調理看上去就簡單多了

(A > B ?)( A > C ? A : C ): (B > C ? B : C)

(3)下面我們分析一個比較復雜的宏定義

#define SHIF16(a) ((a)&0x0001?0: (a)&0x0002?1: (a)&0x0004?2: (a)&0x0008?3:\

(a)&0x0010?4: (a)&0x0020?5: (a)&0x0040?6: (a)&0x0080?7:\

(a)&0x0100?8: (a)&0x0200?9: (a)&0x0400?10:(a)&0x0800?11:\

(a)&0x1000?12:(a)&0x2000?13:(a)&0x4000?14: 15)

我們看后半段 ((a)&0x0001?0: (a)&0x0002?1: (a)&0x0004?2: (a)&0x0008?3:\

(a)&0x0010?4: (a)&0x0020?5: (a)&0x0040?6: (a)&0x0080?7:\

(a)&0x0100?8: (a)&0x0200?9: (a)&0x0400?10:(a)&0x0800?11:\

(a)&0x1000?12:(a)&0x2000?13:(a)&0x4000?14: 15)

因為&的運算符的優先級要比:和?都要高,所以我們把(a)&0x0001看成一個整體A0,代表最低位第0位是真還是假,以此類推;

就變成:(A0?0:A1?1:A2?2:A3?3:A4?4:A5?5:A6?6:A7?7:A8?8:A9?9:A10?10:A11?11:A12?12:A13?13:A14?14:15)

這個太難看懂了

我們就取三個分析下

(A0?0:A1?1:A2?2:3)如果是這條語句,那么是什么意思呢?

我們用括號法來分析下:

(A0?) 0 : {(A1?)1: [(A2?)2:3 ] }

if(A0)//A0是真

{

//那就是0

}

else

{

if(A1)

{

//那就是1

}

else

{

if(A2)

{

//那就是2

}

else

{

//那就是3

}

}

}

注釋:

(a)&0x0001 ->是最低位

(a)&0x0002 ->是最第1位

(a)&0x0004 ->是最第2位

(a)&0x0008 ->是最第3位

(a)&0x0010 ->是最第4位

(a)&0x0020 ->是最第5位

.

.

.

(a)&0x4000->是最第14位

!!!!!!!!!!!!具體這個宏定義是啥作用評論區來說說吧!!!!!!!

總結

以上是生活随笔為你收集整理的和在c语言,?和:在C语言中的详解的全部內容,希望文章能夠幫你解決所遇到的問題。

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