C語言易混淆的知識點 重難點 01

2021-10-03 04:57:49 字數 1573 閱讀 5705

巧記:非→算數→關係→和與→賦值

在六個關係運算子中,<,<=,>,>=的優先順序相同,高於==和!=, ==和!=的優先順序相同。

邏輯關係中:&& 的高於其他||…

優先順序【高到低】:

第一級:

圓括號【()】、下標運算子【】、分量運算子的指向結構體成員運算子【->】、結構體成員運算子【.】

第二級:

邏輯非運算子【!】、按位取反運算子【~】、自增自減運算子【++ --】、負號運算子【-】、型別轉換運算子【(型別)】、指標運算子和取位址運算子【和&】、長度運算子【sizeof】

第**:乘法運算子【】、除法運算子【/】、取餘運算子【%】

第四級:加法運算子【+】、減法運算子【-】

第五級:左移動運算子【<<】、右移動運算子【>>】

第六級:關係運算子【< > <= >= 】

第七級:等於運算子【==】、不等於運算子【!=】

第八級:按位與運算子【&】

第九級:按位異或運算子【^】

第十級:按位或運算子【|】

第十一級:邏輯與運算子【&&】

第十二級:邏輯或運算子【||】

第十**:條件運算子【?:】

第十四級:賦值運算子【= += -= *= /= %= >>= <<.= &= |= ^=】

第十五級:逗號運算子【,】

表示式1? 表示式2: 表示式3

↑條件運算子的結合方式是自右向左

a>b?a:c>d?c:b

就是a>b?a:(c>d?c:b)

其求值規則為:如果表示式1的值為真,則以表示式2 的值作為條件表示式的值,否則以表示式2的值作為整個條件表示式的值。

list item

輸入 格式字串

格式字串的一般形式為:
%[*][型別][輸入資料寬度][長度]型別

其中有方括號的項為任選項。各項的意義如下:

型別:表示輸入資料的型別,其格式符和意義如下所示。

格式 :字元意義

d:輸入十進位制整數

o:輸入八進位制整數

x:輸入十六進製制整數

u:輸入無符號十進位制整數

f或e:輸入實型數(用小數形式或指數形式)

c:輸入單個字元

s:輸入字串

「*」符:用以表示該輸入項,讀入後不賦予相應的變數,即跳過該輸入值。

如:scanf("%d %*d %d",&a,&b);

當輸入為:1 2 3時,把1賦予a,2被跳過,3賦予b。

寬度:用十進位制整數指定輸入的寬度(即字元數)。

例如:scanf("%5d",&a);

輸入:12345678

只把12345賦予變數a,其餘部分被截去。

又如:scanf("%4d%4d",&a,&b);

輸入:12345678

將把1234賦予a,而把5678賦予b。

長度:長度格式符為l和h,l表示輸入長整型資料(如%ld) 和雙精度浮點數(如%lf)。h表示輸入短整型資料。

使用scanf函式還必須注意以下幾點:

C 易混淆知識點

c 易混淆知識點 crystal 例項 static void main string args 執行結果為 有了上面的理論基礎,下面就具體分析上面程式為什麼會是那樣的結果 首先m1,m2都是引用型別,當執行m1 m2操作時,比較的是m1與m2在棧內位址的值是否相等,即比較的是引用,因為m1和m2指...

java語言易混淆知識點

s.substring a,b a,b含義 不可變字串string 修改 先提取字串再拼接 和equals區別 空串和null串 空串是長度為0內容為空 null串表示目前沒有任何與該變數的關聯 檢查乙個字串是否為null if str null 檢查乙個字串既不是null也不是空串 if str ...

PMP 易混淆知識點

敏感性分析有助於確定哪些風險對專案具有最大的潛在影響。它有助於理解專案目標的變化與各種不確定因素的變化之間存在怎樣的關聯。把所有其他不確定因素固定在基準值,考察每個因素的變化會對目標產生多大程度的影響。敏感性分析的典型表現形式是龍捲風圖。基於單項任務的成本和進度的概率分布,模擬出成百上千種可能結果的...