c++編程思想(三)--c++中c

本章開始講解了一些簡單的語法規則,以及c++和c的區別,本身簡而言之記錄了一些有爭議的或者看了有歧義的,常規語法就略之c++

一、++i(先進行自加,再帶入運算) 和 i++ (先運算,再自加),驗證結果以下編程

二、switch後能夠跟整數(字符也能夠,由於內存裏字符也是按照整數存儲的,一 一對應)安全

三、c++編程思想裏認爲內建數據類型只有四個:char ,int ,float 和 double多線程

  而bool類型是標準c++加進來的,最好用true 和flase ,不用隱式將int轉換爲bool(這正是平時最經常使用的)函數

  long ,short ,signed ,unsigned 被認爲是說明符優化

  可是平時咱們認爲的八大基本類型是:byte ,short ,int ,long ,float ,double ,bool ,char spa

四、像函數傳遞值時,在函數內部生成一個拷貝,這個是「按值傳遞」,外部變量值沒變線程

  咱們能夠經過指針和引用來改變,實際指針和引用均可以理解爲外部變量的別名 指針

五、不能使用void型引用,void型指針能夠,並且意味着任何類型的指針均可以間接的引用那個指針地址對象

  如:void *p;  *((int *)p) = 3;可是因爲自由轉換,能夠再轉成char *,改變內存,可能引發崩潰,可是不少時候用的,好比多線程的的時候

六、c規定在做用域開始處就定義全部變量,可是c++能夠在做用域任何地方

七、static 做用:a 只在第一次調用時初始化,後面值在以前基礎上處理,並且在函數外不可用 b引伸於前面,在文件最開始的時候static申明,其餘文件extern也沒   用,避免命名衝突 ,此外,static是內部連接,extern是外部連接

八、字符型和常數對應關係

九、volatile 防止編譯器優化

十、優先級實在多,且不一樣語言的優先級會不同,因此記得一個最基本,其他的能夠查表

基本的優先級須要記住:
指針最優,單目運算優於雙目運算。如正負號。
先乘除(模),後加減。
先算術運算,後移位運算,最後位運算。請特別注意:1 << 3 + 2 & 7等價於 (1 << (3 + 2))&7.
邏輯運算最後計算。
 
十一、位移以後捨棄的位能夠左旋或右旋,機器級是有的,c++/C是創建最小的語言,所以捨棄,能夠本身實現
 
十二、c++顯示轉換:
1)、static_cast:static_cast類型轉換用於相關類型之間的轉換
(a)父類和子類之間的轉換。
(b)用於基本數據之間的轉換,如:把int轉成char。
(c)空指針轉與目標類型的指針之間的互相轉換
2)、const_cast: 這個運算符能夠用來去除一個對象的const或volatile屬性,type-id必須是一個指針或者引用。
3)、reinterpret_cast:最不安全的一種方式,徹底不一樣類型轉換,如將一個十六進制整數轉換爲內存地址(由int-->指針類型,這兩種類型徹底不關聯)。既然是用於不相關類型之間的轉換,也就意味着編譯器不會作太多的確認和承諾。reinterpret_cast方式還有一個特色就是:目標和原始值之間至少有相同的位數,咱們能夠將轉換以後的值再轉換回去,而不像其它3種類型可能會致使精度丟失。
4)、dynamic_cast:一種運行時(run-time)檢測的類型轉換,所以轉換可能須要較大的運行時代價,這種類型也是用C-style是沒法實現的。主要用於執行類型向下轉換和繼承之間的轉換。安全類型向下轉換,這個後面細講
 
寫代碼的小熊貓,開開心心每一天,(*^@^*)
相關文章
相關標籤/搜索