10月30日第四次作業練習
運算子是一種告訴編譯器執行特定的數學或邏輯操作的符號。c++ 內建了豐富的運算子,並提供了以下型別的運算子:算術運算子、關係運算子、邏輯運算子、位運算子、賦值運算子、雜項運算子。算術運算子:+、-、* 、/、%、++、–運算子優先順序:在乙個表示式中可能包含多個有不同運算子連線起來的、具有不同資料型別的資料物件;由於表示式有多種運算,不同的結合順序可能得出不同結果甚至出現錯誤運算錯誤,因為當表示式中含多種運算時,必須按一定順序進行結合,才能保證運算的合理性和結果的正確性、唯一性。
關係運算子:==、!=、>、<、>=、<=
邏輯運算子:&&、||、!
位運算子:p、q、p&q、p|q、p^q
賦值運算子:=、+=、-=、*=、/=、%=、<<=、>=、&=、|=、^=
雜項運算子:sizeof、condition?x:y、,.(點)和->(箭頭、cast、&
c++提供3種邏輯運算子:
(1) && 邏輯與(相當於其他語言中的and)
(2) || 邏輯或(相當於其他語言中的or)
(3) !邏輯非(相當於其他語言中的not)
在乙個邏輯表示式中如果包含多個邏輯運算子,按以下的優先次序:
(1) !(非)→ &&(與)→ ?(或),即「!」為三者中最高的。
(2) 邏輯運算子中的「&&」和「||」低於關係運算子,「!」高於算術運算子。
在c/c++中,自增(++)自減(–)操作符為資料物件加1和減1操作提供了一種方便簡潔的實現方式。他們都有前置和後置兩種形式
前自增自減操作的優先順序大於賦值運算子(=),
後自增自減操作的優先順序小於賦值運算子,
後自增自減操作後表示式的值不會發生改變。
變數的自增自減是改變變數的值,指標的自增自減是改變指標的指向位址。
當指標、自增(++)或者自減(–)運算子,以及*這三個運算子在同乙個語句時,要注意++的作用點在**,
變數是左值,可以在賦值語句的左邊;
數字字面值是右值,不能被賦值。
變數是一段有名字的連續儲存空間。
在源**中通過定義變數來申請並命名這樣的儲存空間,並通過變數的名字來使用這段儲存空間。可以自己定義。
2種:直接初始化;複製初始化。直接初始化更加靈活而且執行效率更高。
定義沒有初始化式的變數時,系統有時候會幫我們初始化變數。
系統如何初始化取決於變數的型別以及變數定義的位置。
1、內建型別變數是否自動初始化取決於變數定義的位置。函式體外定義的變數初始成0;函式體內定義的變數不進行自動初始化。除了用作賦值操作的左運算元,其他任何使用未初始化變數的行為都是未定義的。
2、類型別變數在定義時,如果沒有提供初始化式,則會自動呼叫預設建構函式進行初始化(不論變數在**定義)。如果某型別沒有預設建構函式,則定義該型別物件時必須提供顯示初始化式。
3、對於動態分配的單個物件,可使用直接初始化的語法規則在定義時顯示初始化。如果不提供顯示初始化式,動態建立的物件與在函式內部定義的變數初始化方式相同。
C C 面試題集合 2
本面試題均轉換何海濤部落格 題目 求1 2 n,要求不能使用乘除法 for while if else switch case等關鍵字以及條件判斷語句 a?b c 分析 這道題沒有多少實際意義,因為在軟體開發中不會有這麼 的限制。但這道題卻能有效地考查發散思維能力,而發散思維能力能反映出對程式設計相...
c 練習2 微軟面試題
微軟面試題 在排序陣列中,找出給定數字的出現次數,比如 1,2,2,2,3 中2的出現次數是3次 思路1 最笨拙的方法,從頭開始挨個判斷是否是要尋找的數字 思路2 採用二分查詢方法 先二分法找到最先出現的位置,然後從最先出現位置到最後再次二分查詢找到最後出現的位置 當然找最末位置的時候也可以不用二分...
經典C C 面試題
1.介紹一下stl,詳細說明stl如何實現vector。answer stl 標準模版庫,standard template library 它由容器演算法迭代器組成。stl有以下的一些優點 可以方便容易地實現搜尋資料或對資料排序等一系列的演算法 除錯程式時更加安全和方便 即使是人們用stl在uni...