国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

【C語言復習】第六篇、關于C語言操作符的知識

這篇具有很好參考價值的文章主要介紹了【C語言復習】第六篇、關于C語言操作符的知識。希望對大家有所幫助。如果存在錯誤或未考慮完全的地方,請大家不吝賜教,您也可以點擊"舉報違法"按鈕提交疑問。

目錄

第一部分、常見操作符

第二部分、每個操作符的具體使用????????

1、算術操作符

1.1、除法運算符 /?

1.2、取模運算符 %

2、移位操作符

2.1、左移?<<

2.2、右移 >>

?3、位操作符

3.1、按位異或的妙用

3.2、按位與的妙用

4、單目操作符

4.1、邏輯反操作符 !

?4.2、sizeof操作符

?4.3、按位取反~

4.4、強制類型轉換

5、三目操作符(條件操作符)

6、逗號表達式

第三部分、往期文章


第一部分、常見操作符

? ? ? 操作符類型 相應的操作符
算術操作符 +????????減-????????乘*?? ? ? ?除/????????取模%
移位操作符 左移<<? ? ? ? 右移>>
位操作符

按位與&????????按位或|????????按位異或^

復合賦值操作符

加等于+=? ? ?減等于-=? ? ? ?乘等于*=? ? ? ?模等于/=? ? ?余等于%=? ? ?按位與&=???????

按位異或等于^=???????按位或等于|=? ? ? ??右移等于>>=???????左移等于<<=

單目操作符(只有一個操作數)

邏輯取反操作!? ? ? ? 取地址&? ? ? ? 計算操作數的類型長度sizeof? ? ? ? 按位取反~

前置、后置++????????前置、后置--????????解引用操作符(間接訪問)*?????????

強制類型轉換(類型)X? ?地(X為變量或者指針)

關系操作符

大于>? ? ? ? 大于等于>=????????小于<????????

小于等于<=????????等于等于==????????不等于!=

?邏輯操作符 邏輯與&&? ? ? ? 邏輯或||
條件操作符(三目操作符) exp1 ? exp2 : exp3
逗號表達式 從左往右執(zhí)行exp1,exp2,exp3,exp4
下標引用、函數調用和結構成員 下標引用[]????????函數調用()? ? ? ? 訪問結構成員.?????????指針訪問結構體成員->

第二部分、每個操作符的具體使用????????

? ? ? ? 這里主要記錄一些使用這些操作符的基本知識,有些太簡單,我就不沒有記錄

1、算術操作符

1.1、除法運算符 /?

????????如果除號兩邊都是整數執(zhí)行的是整數除法,如果被除數與除數之間有一個是小數,那么計算結果就是小數。示例如下:

【C語言復習】第六篇、關于C語言操作符的知識

1.2、取模運算符 %

????????% 操作符的兩個操作數必須為整數。返回的是整除之后的余數。

2、移位操作符

? ? ? ? 注意:移位操作符的操作數只能是整數。

2.1、左移?<<

????????向左移位,右邊永遠補0。小技巧:對于偶數,左移1位等價于除以2,因此在FPGA內部便可用左移的方式代替除法,減少邏輯資源的使用。

2.2、右移 >>

? ? ? ? 當操作數為正數時:向右移位,左邊補0。

? ? ? ? 當操作時為負數時:分為兩種情況:(取決于編譯器)

方式一、邏輯移位:左邊用0填充,右邊丟棄(包括符號位)

方式二、算術移位:左邊用該值的符號位填充,右邊丟棄(一般情況下是算數右移

驗證編譯器的移位方式,示例如下:

? ? ? ? 因為a = -1,其在內存中的存儲方式為:11111111_11111111_11111111_11111111,根據算術移位,其值不發(fā)生改變。

? ? ? ? 如果該編譯器的右移方式為邏輯移位時:01111111_11111111_11111111_11111111,該值為一個很大的正數。

【C語言復習】第六篇、關于C語言操作符的知識

?3、位操作符

? ? ? ? 合理的使用位操作符,得到的代碼可太妙了。其次注意:位操作符的操作數也為整數。

3.1、按位異或的妙用

? ? ? ? 示例、不定義中間變量的方式,實現兩個整數 a,b值之間的互換。

int a = 3,b =5;
//按位異或的方式
a = a ^ b;
b = a ^ b;//b = a^b^b
a = a ^ b;//a = a^b^a

//相加的方式,容易溢出
a = a + b;//8(缺點,a,b值太大時容易溢出)
b = a - b;//8 - 5 = 3
a = a - b;//8 - 3 = 5

3.2、按位與的妙用

? ? ? ? 示例、求一個整數存儲在內存中的二進制中1的個數。

方法1、常規(guī)思路

int main()
{
        int a = -1;
        int count = 0;
        for (int i = 0;i < 32; i++)
        {
            if (a & (1<<i))//注意這里的寫法,不用去定義一個變量讓他去移位
            {
                count++;
            }
    
        }
        printf("%d\n", count);
        return 0;
}

方法2、大佬思路

int main()
{
        int num = -1;
        int i = 0;
        int count = 0;//計數
        while (num)
        {
            count++;
            num = num & (num - 1);//num 與 num - 1 相與
        }
        printf("二進制中1的個數 = %d\n", count);
        return 0;
}

4、單目操作符

4.1、邏輯反操作符 !

????????注意:C語言中,0就是假,非0就為真。 a = 100 ;!a = 0;

【C語言復習】第六篇、關于C語言操作符的知識

?4.2、sizeof操作符

? ? ? ? sizeof的作用:以字節(jié)為單位給出與變量或類型在內存中所占的空間大小。

? ? ? ? 注意:1.?sizeof計算字符串的時候會算入\0。

? ? ? ? ? ? ? ? ? ?2. sizeof括號內部的表達式是不參與運算的!結果只有a的類型決定,定義a的時候已經給a開辟了空間。

如下圖:

【C語言復習】第六篇、關于C語言操作符的知識

? ? ? ? ?關于sizeof的用法還是很多的,例如下面兩張截圖展示的內容。

例如1、計算不同類型變量所占空間大小

【C語言復習】第六篇、關于C語言操作符的知識

例如2、用來計算整型數組的長度(會常用?。。。?/strong>

? ? ? ? 數組長度再進行傳參的時候,只能在外部提前計算好數組的長度,隨后再進行傳參。

【C語言復習】第六篇、關于C語言操作符的知識

?4.3、按位取反~

? ? ? ? 對某個數取反,是將其在內存中的二進制數據(補碼)進行按位取反。

? ? ? ? 這里為啥是-1?應該懂了吧。

【C語言復習】第六篇、關于C語言操作符的知識

4.4、強制類型轉換

? ? ? ? 變量前面右括號,括號里面還有類型,那么就是強制類型轉換。

(數據類型)變量?

  • 強制類型的正常用法?

【C語言復習】第六篇、關于C語言操作符的知識

  • 強制類型的更妙的用法(涉及到后面的指針的一些知識)

?????????void* :示任何類表型的地址都可以放進去。無論是char*,int*還是其他指針類型,都可以用void*來存放。

? ? ? ? 用通俗的話來說,void* 就是指針類型變量的垃圾桶,可以存放任何類型變量的地址。

? ? ? ? 因此,利用這一點,就有了一個應用場景,在編寫函數的入口參數時,我不知道傳入該函數的參數是什么指針類型,那么此時我先用void*來存放該指針,等我函數里面要用到該指針的時候我再去進行強制類型轉換。妙的壓批!

5、三目操作符(條件操作符)

? ? ? ? 說實話,我個人認為該操作符在C語言里面經常被人遺忘,也可能是我接觸的C太少。但是這個操作符在verilog HDL里面可是一個寵兒,大寵兒。

? ? ? ? 在verilog里面和assign賦值語句一起用,能夠解決輸出結果存在一個周期延遲的問題。這里不探討太多,后面關于verilog 中如何使用,我會詳細解釋。

exp1 ?exp2 :exp3;

exp1成立,整個表達式返回exp2的值,如果exp1不成立,整個表達式返回exp3的值。

【C語言復習】第六篇、關于C語言操作符的知識

6、逗號表達式

????????逗號表達式,就是用逗號隔開的多個表達式。

????????逗號表達式,從左向右依次執(zhí)行整個表達式的結果是最后一個表達式的結果。

示例如下:用來簡化代碼。

int main()
{
    
    a = get_val();
    count_val(a);
    while (a > 0)
    {
        a = get_val();
        count_val(a);
    }
    return 0; 
}
//等價于
int main()
{
    while (a = get_val(), count_val(a),a > 0)
    {
        
    }
    return 0; 
}

第三部分、往期文章

? ? ? ? 希望我的筆記對你有幫助,有需要的小伙伴可以看一下往期的文章??????

????????【C語言復習】第一篇、關于我的C語言的復習路線_大屁桃的博客-CSDN博客

????????【C語言復習】第二篇、VS2017軟件的使用以及常用小技巧_大屁桃的博客-CSDN博客?

????????【C語言復習】第三篇、Gitee碼云的創(chuàng)建和使用_大屁桃的博客-CSDN博客

????????【C語言復習】第四篇、有關C語言數據類型的知識_大屁桃的博客-CSDN博客

? ? ? ?【C語言復習】第五篇、變量,常量,字符串,轉義字符的知識_大屁桃的博客-CSDN博客

? ? ? ??文章來源地址http://www.zghlxwxcb.cn/news/detail-502945.html

到了這里,關于【C語言復習】第六篇、關于C語言操作符的知識的文章就介紹完了。如果您還想了解更多內容,請在右上角搜索TOY模板網以前的文章或繼續(xù)瀏覽下面的相關文章,希望大家以后多多支持TOY模板網!

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。如若轉載,請注明出處: 如若內容造成侵權/違法違規(guī)/事實不符,請點擊違法舉報進行投訴反饋,一經查實,立即刪除!

領支付寶紅包贊助服務器費用

相關文章

  • Postgresql關于JSON、JSONB的操作符、處理函數(持續(xù)更新)

    Postgresql關于JSON、JSONB的操作符、處理函數(持續(xù)更新)

    (只列舉本次用到的函數,其他函數在文章后面有詳解) SELECT answer_id,? jsonb_array_elements(option_ids)::INTEGER? AS option_id FROM db_live_answer? WHERE survey_code=\\\'No.20230605165428002\\\' ? ? ?如果所有json數組都包含兩個新列的兩個元素,那么使用固定路徑,如dmfay的答案。 否則,你應該使用jso

    2024年02月08日
    瀏覽(16)
  • 【C語言】操作符

    【C語言】操作符

    算術操作符 移位操作符 位操作符 賦值操作符 單目操作符 關系操作符 邏輯操作符 條件操作符 逗號操作符 下標引用、函數調用和結構成員操作符 除了 % 操作符之外,其他的幾個操作符可以作用于整數和浮點數。 對于 / 操作符如果兩個操作數都為整數,執(zhí)行整數除法。而只

    2024年01月16日
    瀏覽(27)
  • <C語言> 操作符

    <C語言> 操作符

    加法(+):用于將兩個操作數相加。 減法(-):用于將第一個操作數減去第二個操作數。 乘法(*):用于將兩個操作數相乘。 除法(/):用于將第一個操作數除以第二個操作數。 取模(%):用于求兩個操作數相除的余數。 乘法、除法和取模具有相同的優(yōu)先級,高于加法

    2024年02月12日
    瀏覽(20)
  • C語言初級<操作符>

    C語言初級<操作符>

    C語言是一門面向過程的、抽象化的通用程序設計語言,廣泛應用于底層開發(fā)。C語言能以簡易的方式編譯、處理低級存儲器。C語言是僅產生少量的機器語言以及不需要任何運行環(huán)境支持便能運行的高效率程序設計語言。 本篇文章是基于C語言,對入門小知識操作符的講解,展

    2024年02月12日
    瀏覽(21)
  • C語言的操作符

    C語言中的操作符是用于操作變量、常量和表達式的符號,以下是我學習操作符整理的相關知識點。 算數操作符: + - * / % + 、 - 、 * 、 / 可以用于操作整數和浮點數 % 只能操作整數,返回整除后的余數 左移操作符 右移操作符 這兩個只能用于整數 操作符 操作符 位操作符: | ^

    2024年02月01日
    瀏覽(15)
  • C語言---操作符詳解

    C語言---操作符詳解

    算術操作符 移位操作符 位操作符 賦值操作符 單目操作符 關系操作符 邏輯操作符 條件操作符 逗號操作符 下標引用、函數調用和結構成員。 移位操作符,移動的是二進制位。 警告:對于移位運算符,不要移動負位數,這個是標準定義的。 3.1.1、原碼、反碼、補碼介紹 整數

    2024年02月07日
    瀏覽(52)
  • C語言——操作符詳解

    C語言——操作符詳解

    哈嘍,大家好,今天我們來學習C語言中的各中操作符。 目錄 1.操作符的分類 2.算數操作符 整數的二進制表示 3.位移操作符 3.1左移操作符 3.2右移操作符 4.位操作符 5.賦值操作符 6.單目操作符 6.1 單目操作符介紹 ~ 的用法: 6.2 sizeof 和 數組 7.關系操作符 8.邏輯操作符 9. 條件操

    2024年02月05日
    瀏覽(22)
  • C語言操作符練習

    C語言操作符練習

    曾經有一道面試題,要求 不能創(chuàng)建臨時變量(第三個變量),實現兩個數的交換。 這道題如果沒有前半句的修飾,就只是簡單的一道基礎題。 法一: 但是如果加上了前半句的修飾,就需要更換思路了。 法二: 第二種方法比第一種方法更考驗思維,但是中方法也有弊端,如

    2024年02月19日
    瀏覽(22)
  • 【C語言】操作符詳解

    【C語言】操作符詳解

    ??個人主頁:Weraphael ???作者簡介:目前正在回爐重造C語言(2023暑假) ??專欄:【C語言航路】 ?? 希望大家多多支持,咱一起進步!?? 如果文章對你有幫助的話 歡迎 評論?? 點贊???? 收藏 ?? 加關注?? 算術操作符 位移操作符 位操作符 賦值操作符 單目操作符 關

    2024年02月16日
    瀏覽(25)
  • c語言---操作符(詳解)

    c語言---操作符(詳解)

    算術操作符: + 、- 、*、/ 、% 移位操作符: 位操作符: | ^ ` 賦值操作符: = 、+= 、 -= 、 = 、 /= 、%= 、= 、= 、= 、|= 、^= 單?操作符: !、++、–、、 、+、-、~ 、sizeof、(類型) 關系操作符: 、= 、 、= 、 == 、 != 邏輯操作符: 、|| 條件操作符: ? : 逗號表達式: , 下標引?: [

    2024年02月22日
    瀏覽(25)

覺得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請作者喝杯咖啡吧~博客贊助

支付寶掃一掃領取紅包,優(yōu)惠每天領

二維碼1

領取紅包

二維碼2

領紅包