一、程式設計基本概念
1.printf操作順序是從右向左,計算引數時,從右向左壓入堆疊。
2.條件判斷「a」 == a 優於 a == 「a」,因為會進行型別判斷,萬一錯寫== 為 = ,c++是不允許對常量賦值的。
3.關於運算子方面的問題,不想去管,遊戲是乙個偏軟的東西。
4.a,b兩個數,在不使用ifswitch等條件判斷語句中,如何找到最大。
思想是採用數學平均數,絕對值。
5.a,b交換,不使用中間變數。
a = a + b;
b = a - b;
a = a - b;
問題是 a + b可能會越界
所以採用這個
a = a ^ b;
b = a ^b;
a = a ^ b;
6.c 與c++的問題,在呼叫c編譯後的函式,要加extern c,因為c++有過載,函式會被編譯成這樣fun_int_int而c不會。所以通過這個來進行連線,解決名字匹配的問題。
7.c與c++的區別
c是一門結構化的語言,c語言優先考慮的是演算法和結構。程式考慮如何通過輸入乙個資料,通過乙個過程,進行事物控制或者獲得輸出結果。
而c++則是一門面對物件的語言,考慮的是如何構造乙個物件模型,將需要解決的問題,用模型模擬出來,然後進行解決。
8.移除程式中的注釋。沒有進行仔細的考慮,思維過程應該是將大致步驟考慮清楚,然後在仔細考慮注意事項,意外的事項。思維首先是考察要處理的問題的情況,將情況進行了解,比如說分多少種型別,有什麼問題,注意到不同的事件。然後針對各種型別問題提出解決方案,重點關注意外情況的處理。
9.預處理、const、sizeof
巨集定義上在後面新增型別,比如說(乙個數)ul,數的型別為ul。
const新增在函式後面,表示恆態函式,如func() const。
const與巨集定義的區別
第一、巨集定義沒有型別,而const有型別。
第二、在除錯過程中,無法對巨集定義進行除錯,但可以對const除錯,基本c++裡面不使用巨集定義。
const在c++中和c中存在不同
首先,在c進行編譯的時候,編譯器是不能把const當作編譯期間的常量的,所以以下寫法有問題
const buff = 100;
char array[buff];
buff未定義。
而const buff;在c中可行,當作乙個宣告,而在c++中則不行,因為c預設const是外部連線,可以在別處進行定義。而c++則是內部連線,必須採用extern進行外部連線。
注意sizeof與strlen的區別,sizeof側重的是記憶體,而strlen是字元長度。
10.指標與引用
指標與引用的區別在於:指標可為空,而引用不能為空。指標可以改變,而引用無法改變,
在函式中申明乙個指標,如果指標賦值為乙個另乙個指標指向的內容,容易造成記憶體洩露。因為申明了指標但是沒有分配記憶體。*a = *b。
char *a = "hello world";定義的是乙個區域性變數。
char *a = "hello world";定義的是乙個全域性陣列。
陣列中,中為十六進製制等等資料,一般需要除以陣列的型別記憶體大小。
指標是無法被直接賦予乙個位址的,這在c++中不允許。例如,int *b = (int *)0xfff;
程式設計師何苦為難程式設計師
職場上有很多辛酸事,很多合夥人出局的故事,很多技術骨幹被裁員的故事。說來模板都類似,曾經是名校畢業,曾經是優秀員工,曾經被領導表揚,曾經業績突出,然而突然有一天,因為種種原因,被裁員了,想申訴,想求解釋,結論是,能力不匹配,未能與企業一起成長云云。這有兩說,一說是企業冷血,卸磨殺驢,嫌棄老人成本太高...
黑馬程式設計師 學習筆記
windows phone 7手機開發 net培訓 期待與您交流!filestream sqlconnection實現了idispose介面,用完需要被釋放掉 using sqlconnection conn new sqlconnection 用完被釋放掉了 當close後還可以再進行open,物...
黑馬程式設計師 集合筆記
一 定義 用來存放不同型別的物件,長度是可以變的 connection有兩個子類 list,set list 允許元素重複 set 不允許元素 重複 list的子類 arraylist,linkedlist,vector set的子類 hashset,treeset 為什麼會出現這麼多容器呢?因為每...