欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

C語言中邏輯運算符與條件運算符的學習教程

 更新時間:2016年04月26日 17:38:10   作者:靈犀  
這篇文章主要介紹了C語言中邏輯運算符與條件運算符的學習教程,條件運算符問號即三目運算符使用起來十分方便,需要的朋友可以參考下

邏輯運算符

邏輯運算符,用于對包含關(guān)系運算符的表達式進行組合,形成新的表達式;結(jié)果也是只有真或假兩種情況,結(jié)果值用 BOOL 類型變量存儲。

運算符
解釋
結(jié)合方式
() [] -> . 括號(函數(shù)等),數(shù)組,兩種結(jié)構(gòu)成員訪問
由左向右
! ~ ++ -- + - 

* & (類型) sizeof

否定,按位否定,增量,減量,正負號,

間接,取地址,類型轉(zhuǎn)換,求大小

由右向左
* / % 乘,除,取模
由左向右
+ - 加,減
由左向右
<< >> 左移,右移
由左向右
< <= >= > 小于,小于等于,大于等于,大于
由左向右
== != 等于,不等于
由左向右
& 按位與
由左向右
^ 按位異或
由左向右
| 按位或
由左向右
&& 邏輯與
由左向右
|| 邏輯或
由左向右
? : 條件
由右向左
= += -= *= /= 

&= ^= |= <<= >>=

各種賦值
由右向左
, 逗號(順序)
由左向右

使用方法:

表達式1 邏輯運算符 表達式2

邏輯與:a >= b && a > 5 只有當運算符兩邊為真的時候這個表達式為真,一個表達式為假的時候,表達式的結(jié)果就為假。

int a = 5;
int b = 6;
if(a >= b && a > 5)
{
 printf("表達式為真\n");
}
else 
{
 printf("表達式為假\n");
}

int a = 5;
int b = 6;
if(a >= b && a > 5)
{
 printf("表達式為真\n");
}
else 
{
 printf("表達式為假\n");
}


大家可以試著改變 a 和 b 的值看一下結(jié)果。

邏輯或:a >= b || a > 5 只要其中一個結(jié)果為真,這個表達式就為真。

int a = 6;
int b = 7;
if(a >= b || a > 5)
{
 printf("表達式為真\n");
}
else
{
 printf("表達式為假\n");
}

int a = 6;
int b = 7;
if(a >= b || a > 5)
{
 printf("表達式為真\n");
}
else
{
 printf("表達式為假\n");
}


a >= b 為假,但是 a > 5 為真,所以會打?。罕磉_式為真。

邏輯非:!a,如果 a 為真,那么 !a 為假,如果 a 為假,那么 !a 為真。

BOOL flag = YES;
printf("!flag = %d\n", !flag);
printf("flag = %d\n", flag);

BOOL flag = YES;
printf("!flag = %d\n", !flag);
printf("flag = %d\n", flag);


第一行打印輸出:!flag = 0

第二行打印輸出:flag = 1

邏輯運算符的短路

邏輯與的短路:&& 左側(cè)為假,右側(cè)不參與運算。

例如:

int a = 6;
int b = 0;
if(a >= 10 && b = 5)
{
 printf("表達式的值為真\n");
}
printf("b = %d\n", b);

int a = 6;
int b = 0;
if(a >= 10 && b = 5)
{
 printf("表達式的值為真\n");
}
printf("b = %d\n", b);

這里 b 的輸出結(jié)果為:0,因為在表達式 a >= 10 && b = 5 中,a >= 6 為真,所以右側(cè)的 b = 5 不參與運算,所以 b 還等于原來的 0。

邏輯或的短路:|| 左側(cè)為真,右側(cè)不參與運算。

例如:

int a = 6;
int b = 0;
if(a >= 6 || b = 5)
{
 printf("表達式的值為真\n");
}
printf("b = %d\n", b);

int a = 6;
int b = 0;
if(a >= 6 || b = 5)
{
 printf("表達式的值為真\n");
}
printf("b = %d\n", b);

這里 b 的輸出結(jié)果為:0,因為在表達式 a >= 6 || b = 5 中,a >= 6 為真,所以右側(cè)的 b = 5 不參與運算,所以 b 還等于原來的 0。

條件運算符

符號是這個 ?: 一個問號和一個冒號,英文字符。C 語言中唯一的一個三目運算符。

由條件運算符組成條件表達式的一般形式為:

條件表達式? 表達式1:表達式2

如果條件表達式為真,整個表達式的值為表達式1的值;

如果條件表達式為假,整個表達式的值為表達式2的值。

求三個數(shù)的最大值,使用條件運算符就是這樣寫:

int a = 5;
int b = 6;
int c = 9;
int max = a > b ? a : b;
max = max > c ? max : c;
//也可以這樣寫,更加簡單
//int max = a > b ? (a > c ? a : c) : (b > c ? b : c);

int a = 5;
int b = 6;
int c = 9;
int max = a > b ? a : b;
max = max > c ? max : c;
//也可以這樣寫,更加簡單
//int max = a > b ? (a > c ? a : c) : (b > c ? b : c);


相關(guān)文章

  • 使用單鏈表實現(xiàn)多項式計算示例

    使用單鏈表實現(xiàn)多項式計算示例

    這篇文章主要介紹了使用單鏈表實現(xiàn)多項式計算示例,需要的朋友可以參考下
    2014-03-03
  • VC++植物大戰(zhàn)僵尸中文版修改器實現(xiàn)代碼

    VC++植物大戰(zhàn)僵尸中文版修改器實現(xiàn)代碼

    這篇文章主要介紹了VC++植物大戰(zhàn)僵尸中文版修改器實現(xiàn)代碼,可實現(xiàn)植物大戰(zhàn)僵尸中的無限陽光與無冷卻時間功能,需要的朋友可以參考下
    2015-04-04
  • C語言從基礎(chǔ)到進階全面講解數(shù)組

    C語言從基礎(chǔ)到進階全面講解數(shù)組

    數(shù)組是一組有序的數(shù)據(jù)的集合,數(shù)組中元素類型相同,由數(shù)組名和下標唯一地確定,數(shù)組中數(shù)據(jù)不僅數(shù)據(jù)類型相同,而且在計算機內(nèi)存里連續(xù)存放,地址編號最低的存儲單元存放數(shù)組的起始元素,地址編號最高的存儲單元存放數(shù)組的最后一個元素
    2022-05-05
  • 簡要解讀C++的動態(tài)和靜態(tài)關(guān)聯(lián)以及虛析構(gòu)函數(shù)

    簡要解讀C++的動態(tài)和靜態(tài)關(guān)聯(lián)以及虛析構(gòu)函數(shù)

    這篇文章主要介紹了簡要解讀C++的動態(tài)和靜態(tài)關(guān)聯(lián)以及虛析構(gòu)函數(shù),析構(gòu)函數(shù)在C++編程中平時并不是太常用,需要的朋友可以參考下
    2015-09-09
  • 解析c語言switch中break語句的具體作用

    解析c語言switch中break語句的具體作用

    以下是對c語言switch中break語句的作用進行了詳細的分析介紹,需要的朋友可以過來參考下
    2013-07-07
  • C++ Opencv imfill孔洞填充函數(shù)的實現(xiàn)思路與代碼

    C++ Opencv imfill孔洞填充函數(shù)的實現(xiàn)思路與代碼

    在Matlab下,使用imfill可以很容易的完成孔洞填充操作,下面這篇文章主要給大家介紹了關(guān)于C++ Opencv imfill孔洞填充函數(shù)的實現(xiàn)思路與代碼,文中通過示例代碼介紹的非常詳細,需要的朋友可以參考下
    2021-09-09
  • C語言中單鏈表的基本操作指南(增刪改查)

    C語言中單鏈表的基本操作指南(增刪改查)

    鏈表跟數(shù)組不同的是非連續(xù)存儲結(jié)構(gòu),也就是說實現(xiàn)鏈表需要一個指針,每用完一個節(jié)點指針指向下一個節(jié)點,直至表尾,下面這篇文章主要給大家介紹了關(guān)于C語言中單鏈表的基本操作之增刪改查的相關(guān)資料,需要的朋友可以參考下
    2021-09-09
  • c++制作的時間函數(shù)類

    c++制作的時間函數(shù)類

    本文給大家分享的是一個個人使用C++編寫的時間函數(shù)類,主要是實現(xiàn)了類的定義和調(diào)用,相比較來說還算比較復雜的時間類了,推薦給小伙伴們,有需要的朋友可以參考下。
    2015-03-03
  • 如何利用C++實現(xiàn)mysql數(shù)據(jù)庫的連接池詳解

    如何利用C++實現(xiàn)mysql數(shù)據(jù)庫的連接池詳解

    為了提高MySQL數(shù)據(jù)庫的訪問的瓶頸,除了在服務器端增設緩存服務器緩存常用的數(shù)據(jù)之外(如redis),還可以增加數(shù)據(jù)庫連接池,來提高MySQL Server的訪問效率,這篇文章主要給大家介紹了關(guān)于如何利用C++實現(xiàn)mysql數(shù)據(jù)庫的連接池的相關(guān)資料,需要的朋友可以參考下
    2021-07-07
  • C語言基礎(chǔ)全局變量與局部變量教程詳解

    C語言基礎(chǔ)全局變量與局部變量教程詳解

    此處對于全局與局部做一些簡要的介紹,包括全局變量與局部變量,靜態(tài)全局變量與靜態(tài)局部變量,全局函數(shù)與靜態(tài)函數(shù),作者實屬初學,文中若有理解不當之處,還請朋友們不吝指正
    2021-11-11

最新評論