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

【一篇文章帶你重溫重點】C語言操作符

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

【一篇文章帶你重溫重點】C語言操作符

  • 文章目錄
    • ??算術操作符
    • ??移位操作符
    • ??位操作符
    • ??賦值操作符
    • ??單目操作符
    • ??關系操作符
    • ??邏輯操作符

??算術操作符

加( + ) 減( - )乘( * )除( / ) 取模( % )

算術操作符是我們日常用的最多的,也是大家最熟悉不過的。

??要注意以下幾點

1. 除了 % 操作符之外,其他的幾個操作符可以作用于整數和浮點數。

2. 對于 / 操作符如果兩個操作數都為整數,執(zhí)行整數除法。而只要有浮點數執(zhí)行的就是浮點數除法。

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

典型錯誤
【一篇文章帶你重溫重點】C語言操作符


??移位操作符

移位操作符分左移和右移

<< 左移操作符
>> 右移操作符

_
??注:移位操作符的操作數只能是整數。而且是針對二進制補碼進行移動

1.左移操作符

它的移位規(guī)則:

左邊拋棄、右邊補0

【一篇文章帶你重溫重點】C語言操作符


2.右移操作符

移位規(guī)則:

首先右移運算分兩種:

1. 邏輯移位
左邊用0填充,右邊丟棄

2. 算術移位
左邊用原該值的符號位填充,右邊丟棄

那計算機采用的是邏輯移位,還是算術移位呢???
正確答案是取決于編譯器,不過大部分編譯器的是采用算術移位,因為這樣意義才大??!

先補充一些計算機存儲數據的知識

在計算機中存儲數據是按二進制的補碼進行存儲的
補碼的轉換公式=原碼取反加一!
正數的原碼反碼補碼是一樣的?。。。。?!

假設編譯器是邏輯移位
【一篇文章帶你重溫重點】C語言操作符


正數右移

【一篇文章帶你重溫重點】C語言操作符


負數右移

【一篇文章帶你重溫重點】C語言操作符

所以說,只有當右移位算術移位才有實際意義,比如我們上面把-4右移,其實就是讓它除2,變成-2,而邏輯右移則將這個數變成一個非常大的正數,那它的意義何在呢?

??位操作符

位操作符有:

& -------- 按位與
| --------- 按位或
^ -------- 按位異或
??注:他們的操作數必須是整數。

通過一些練習題來理解它是最好不過的方法!

#include <stdio.h>
int main()
{
	int num1 = 1;
	int num2 = 2;
	int a=num1& num2;
	int b=num1 | num2;
	int c=num1^ num2;

	printf("a=%d  b=%d  c=%d", a, c, b);

	return 0;
}

上面結果:a=0,b=3,c=3
解釋如下
【一篇文章帶你重溫重點】C語言操作符

有個小結論:任何數與0異或等于任何數,比如10^0=10
任何數與自己異或等于0,比如10^10=0
而且它們滿足交換律,比如10^ 4 ^ 10= 10^ 10 ^4=0 ^ 4=4

至于為什么是這樣,其實跟上面圖的num1^num2一樣的分析方法,自己可以嘗試畫一下圖理解,有了這個結論就可以做一下下面這道面試題

曾經有一道變態(tài)面試

不能創(chuàng)建臨時變量(第三個變量),實現兩個數的交換。
【一篇文章帶你重溫重點】C語言操作符

#include <stdio.h>
int main()
{
	int a = 10;
	int b = 20;
	printf("交換前a = %d b = %d\n", a, b);//
	a = a ^ b;	// 其實就是a=10^20,先不用算結果
	b = a ^ b;	//然后現在b=a^b=10^20^20,所以就變成b=10^0=10

	a = a ^ b;	//這里就是a= 10 ^ 20 ^ b = 10 ^ 20 ^ 10
				//用交換律就等于10 ^ 10 ^ 20 = 0 ^ 20 = 20
	printf("交換后a = %d b = %d\n", a, b);//這樣兩個數就交換過來了
	

	return 0;
}

??賦值操作符

賦值操作符是一個很棒的操作符,他可以讓你得到一個你之前不滿意的值。也就是你可以給自己重新賦值。

我們創(chuàng)建變量并賦值叫初始化,而后面才叫賦值
【一篇文章帶你重溫重點】C語言操作符


復合賦值符

+=
–=
*=
/=
%=
>>=
<<=
&=
|=
^=

上面的都像下圖一樣等價比如a*=2 等價于a=a*2
【一篇文章帶你重溫重點】C語言操作符


??單目操作符

! ------------ 邏輯反操作
- ------------ 負值
+ ----------- 正值
& ------------取地址
sizeof ------操作數的類型長度(以字節(jié)為單位)
~ ------------ 對一個數的二進制按位取反
------------前置、后置–
++ ----------前置、后置++
* ------------ 間接訪問操作符(解引用操作符)
(類型) ------ 強制類型轉換

主要要注意的是前置和后置的區(qū)別

【一篇文章帶你重溫重點】C語言操作符


??關系操作符

>
>=
<
<=
!= ----------- 用于測試“不相等”
== ---------- 用于測試“相等”

關系操作符比較簡單,最主要的就是下面這個
警告:
在編程的過程中== 和=不小心寫錯,導致的錯誤

【一篇文章帶你重溫重點】C語言操作符


??邏輯操作符

&& ------------ 邏輯與
|| --------------- 邏輯或

注意:
區(qū)分邏輯與和按位與
區(qū)分邏輯或和按位或

1&2----->0--------按位與


1&&2---->1-------邏輯與 兩邊的數為真,表達式就為真


1|2----->3---------按位或


1||2---->1----------邏輯或 其中一方為真,則表達式為真

邏輯操作符常常用于條件判斷語句,比如想判斷一個是是否大于100,并且小于200
【一篇文章帶你重溫重點】C語言操作符

邏輯操作符還有一個最重要的點就是‘“短路”
用一道題理解

一道360筆試題

#include <stdio.h>
int main()
{
    int i = 0,a=0,b=2,c =3,d=4;
    i = a++ && ++b && d++;
    //i = a++||++b||d++;
    printf("a = %d\n b = %d\n c = %d\nd = %d\n", a, b, c, d);
    return 0;
}
//程序輸出的結果是什么?

a=1,b=2,c=3,d=4
根據短路原則,只有a++運算了,其余沒有進行運算
【一篇文章帶你重溫重點】C語言操作符文章來源地址http://www.zghlxwxcb.cn/news/detail-415584.html

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

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

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

相關文章

  • 一篇文章帶你入門HBase

    本文已收錄至Github,推薦閱讀 ?? Java隨想錄 微信公眾號:Java隨想錄 目錄 HBase特性 Hadoop的限制 基本概念 NameSpace Table RowKey Column TimeStamp Cell 存儲結構 HBase 數據訪問形式 架構體系 HBase組件 HBase讀寫流程 讀流程 寫流程 MemStore Flush 參數說明 StoreFile Compaction 參數說明 觸發(fā)過程

    2024年02月08日
    瀏覽(41)
  • 一篇文章,帶你徹底掌握接口測試!

    一、什么是接口測試? 所謂接口,是指同一個系統中模塊與模塊間的數據傳遞接口、前后端交互、跨系統跨平臺跨數據庫的對接。而接口測試,則是通過接口的不同情況下的輸入,去對比輸出,看看是否滿足接口規(guī)范所規(guī)定的功能、安全以及性能方面的要求。 二、為什么要

    2024年02月10日
    瀏覽(34)
  • 一篇文章帶你搞懂前端Cookie

    一篇文章帶你搞懂前端Cookie

    瀏覽器Cookie相信各位點進這篇文章的小伙伴應該不陌生了,它是前端領域中一個非常重要的內容,當然也是面試的一個考點,不知道各位小伙伴是否真正掌握了Cookie呢?當然沒有掌握也是沒有關系的,可以跟著小編的腳步一起來學習一下前端Cookie,沒有熟練掌握的小伙伴看完這

    2024年02月04日
    瀏覽(31)
  • 一篇文章帶你了解SpringBoot目錄結構

    一篇文章帶你了解SpringBoot目錄結構

    前言 SpringBoot是整合Spring技術棧的一站式框架,是簡化Spring技術棧的快速開發(fā)腳手架,是一個能夠快速構建生產級別的Spring應用的工具。SpringBoot是目前流行的微服務框架,倡導“約定優(yōu)于配置”,簡化Spring項目搭建及開發(fā)過程。springboot提供了很多核心的功能,比如自動化配置

    2024年03月25日
    瀏覽(90)
  • 一篇文章帶你實現棧的接口

    一篇文章帶你實現棧的接口

    棧(Stacks)是限定在一端插入和刪除的線性表。允許插入和刪除的一端稱為棧頂(Top),另一端稱為棧底(Bottom)。棧中的數據元素遵守后進先出(Last In First Out)的原則。因此,棧又稱為后進先出(先進后出)線性表。 壓棧:棧的插入操作叫做進棧、壓棧、入棧,入數據在

    2024年02月13日
    瀏覽(21)
  • 一篇文章帶你走進Java(保姆級)

    一篇文章帶你走進Java(保姆級)

    手打不易,希望對各位還在徘徊學什么語言的有幫助??!java不會讓你失望??! Java是一種優(yōu)秀的程序設計語言,它具有令人賞心悅目的語法和易于理解的語義。 Java還是有一系列計算機軟件和規(guī)范形成的技術體系,這個技術體系提供了完整的用于軟件開發(fā)和跨平臺部署的支持

    2024年02月15日
    瀏覽(26)
  • 一篇文章帶你了解什么是圖靈完備

    圖靈完備(Turing-complete)是一個計算機科學中的概念,它指的是一種計算模型能夠模擬任何其他計算模型的能力。這意味著,只要一種計算模型是圖靈完備的,那么它就能夠完成任何可計算的任務。 圖靈完備是指一種計算機語言或計算模型具有足夠的能力來模擬圖靈機的所有

    2024年02月15日
    瀏覽(32)
  • 一篇文章帶你了解什么是JDK

    JDK(Java Development Kit)是Java開發(fā)工具包,它提供了開發(fā)和運行Java應用程序所需的工具、庫和資源。下面是JDK的一些重點介紹: Java編譯器(javac):JDK包含了Java編譯器,可以將Java源代碼編譯為Java字節(jié)碼。通過編譯器,開發(fā)人員可以將Java源代碼轉換為可在JVM上運行的字節(jié)碼文

    2024年03月19日
    瀏覽(32)
  • 一篇文章帶你快速認識區(qū)塊鏈(必看)

    一篇文章帶你快速認識區(qū)塊鏈(必看)

    ? ? ? ?區(qū)塊鏈技術,這一劃時代的分布式賬本技術,正在全球范圍內掀起一場深度的信任與協作模式變革。區(qū)塊鏈如同一部由多方共同維護的公開而又安全的大賬本,每一筆交易都被打包成一個區(qū)塊,通過高級密碼學手段確保傳輸和訪問安全,并按照時間順序串聯起來,形

    2024年04月25日
    瀏覽(34)
  • 一篇文章帶你了解-selenium工作原理詳解

    一篇文章帶你了解-selenium工作原理詳解

    前言 Selenium是一個用于Web應用程序自動化測試工具。Selenium測試直接運行在瀏覽器中,就像真正的用戶在操作一樣。支持的瀏覽器包括IE(7, 8, 9, 10, 11),Mozilla Firefox,Safari,Google Chrome,Opera等。 主要功能包括:測試與瀏覽器的兼容性——測試你的應用程序看是否能夠很好得

    2024年02月10日
    瀏覽(26)

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

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

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

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

二維碼1

領取紅包

二維碼2

領紅包