一元運算子的優先順序最高,其次是乘除法,優先順序最低的是加減法。
所有運算子都滿足做結合律,當優先順序相同時,按照從左向右的順序進行組合。
! 邏輯非
&& || 邏輯與 邏輯或
< > <= >=
== !=
關係運算子比較運算物件的大小關係返回布林值,進行比較運算時,除非比較的物件是布林型別,否則不要使用布林型字面值作為運算物件。
if(val) %如果val是任意的非零值,條件為真
if(!val) %如果val是0條件為真
if(val==1)
賦值運算子滿足又結合律,賦值運算子優先順序較低。
遞增和遞減運算子有兩種形式,前置版本和後置版本。
int i=0,j;
j=++i;%j=1,i=1 前紙版本得到的是遞增之後的值
j=i++;%j=1,i=2 後置版本得到的是遞增之前的值
除非必須,否則不適用遞增或遞減運算子的後置版本。
如果在一條復合表示式中即將變數+1、-1,又能使用他原來的值,就使用遞增遞減運算子的後置版本。
auto p=v.begin();
while(p!=v.end()&&*p>=0)
cout<*p++<%輸出當前值,並將p向前挪動乙個元素
% *p++ 等價於 *p ++p寫法更簡潔。
.點運算子和->箭頭運算子都可以用於成員訪問。
n=(*p).size();%解引用運算子優先順序低於點運算子,*p要加括號
n=p->size();
條件運算子將簡單的if-else邏輯嵌入到單個表示式中。
cond?expr1:expr2;
條件運算子可巢狀使用,最好別超過兩到三層。
~ %位求反
<< %左移
>> %右移
& %位與
^ %位異或
| %位或
sizeof運算子返回一條表示式或乙個型別名字所佔的位元組數。
sizeof(char)結果為1;
對引用型別執行sizeof運算得到被引用物件所佔空間的大小;
對指標執行sizeof運算得到指標本身所佔空間的大小;
對解引用指標執行sizeof運算得到指標指向的物件所佔空間的大小,指標不需有效;
對陣列執行sizeof運算得到整個陣列所佔空間的大小;
對string物件或這vector物件執行sizeof運算只返回該型別固定部分的大小。
含有兩個運算物件,按照從左向右的順序依次求值.
for(...;...;++ix,--cnt)
隱式轉換 (陣列轉換成指標,指標的轉換)
顯式轉換
命名的強制型別轉換
cast-name(expression)
static_cast
%任何具有明確定義的型別轉換,只要不包含底層const,都可以使用static_const
double slope = static_cast
(j) / i;
dynamic_cast
%只用於物件的指標和引用.
const_cast
%const_cast只能改變運算物件的底層const。
const
char *pc;
char *p=const_cast
(pc);
reinterpret_cast
%通常為運算物件的位模式提供較低層次上的重新解釋。本質上依賴於機器,使用reinterpret_cast是非常危險的。
if語句if(condition)
statement1
else
statement2
switch語句switch(ch)
break;
default:
;break;
}
while語句while(condition)
statement
當不確定到底要迭代多少次時,使用while迴圈比較合適。
for語句
for(init-satatmen;condition;expression)
statement
for(declaration:expression)
statement
do-while語句do
statement
while(condition);
do while語句是先執行迴圈體後檢查條件,不管條件的值如何,至少執行一次迴圈。
break語句
只能出現在迭代語句和switch語句內部,作用範圍僅限於最近的迴圈或者switch。
continue語句
continue語句終止最近的迴圈中的當前迭代並立即開始下一次迭代,只能出現在for while 和do-while迴圈內部。
while(cin>>buf&&!buf.empty())
goto語句
goto語句的作用是從goto語句無條件跳轉到同一函式內的另一條語句。不要在程式中使用goto語句,因為它使得程式既難理解又難修改。
end:return;%帶標籤語句
goto end;
異常檢測部分使用throw表示式表示他遇到了無法處理的問題
使用try語句塊處理異常,try語句塊以關鍵字try開始,以乙個或多個catch語句結束
一套異常類用於在throw表示式和相關的catch子句之間傳遞異常具體資訊。
if(a == 0)
try
catch(const
char *str) 接收異常,處理異常
c++標準庫定義了一組類用於報告標準庫函式遇到的問題。 Thinking in Java 第四章 第五章
第四章 1 for迴圈 可以在初始化和步進控制部分,採用逗號表示式,處理多個相同型別變數的計算。2 break和continue都是結束當前迴圈,不再執行當前迴圈剩餘的語句。不同的是,break結束迴圈語句,continue從迴圈下乙個開始節點繼續執行。3 switch可使用的型別 int char...
第四章 學習 表示式
4.1 c 將運算子分為三類 1.一元運算子2.二元運算子 3.三元運算子 4.2 使用初等表示式 是運算子的重要組成部分。幾種不同的初等表示式 1 字面值 在c 中 直接使用硬編碼的值。比如 if firstname brain brain 就輸入直接使用硬編碼 也可以這樣 將其存入某個變數中,然...
第四章 表示式
左值,用的是物件的身份 記憶體中的位置 右值,用的是物件的值 解引用生成 左值,取位址生成乙個 右值 bool b true bool c b c為true,因為 bool值在計算的時候被轉換成整型號int,所以b被轉換成 1,不為0,所以賦值給c的時候,為true int b while b ge...