一、關於符號優先順序問題
算數運算子》關係》邏輯》賦值; //引用bj內容例如
a[i]+=a[i-1]+a[i-2];
表示a[i-1]
先和a[i-2]
相加,其結果和a[i]
完成相加等於的操作。
二、對於for迴圈中的終止值
例如
for
(k=1
;k<=
6;k++
)printf
("%d"
,k);
//此處k已經從6加到了7
這裡將打出6個will 520和k的值7。
三、對\0結束字元的替換來阻止結束
例如
#include
int main()
; a[0]
[4]=
's';
puts
(a[0])
;//此處a[0]是首位址,因為是二維陣列所以不是a而是a[0],表示從首位址開始連續列印,遇到\0結束
}
輸出
coszsabcd
四、從位址位置開始輸出列印
若為一維陣列
puts(&a[3]);
表示從a[3]位置開始連續輸出遇到\0結束
若為二維陣列,見《三》中內容
五、巨集定義函式
一直用巨集定義定義常量,容易忽略巨集定義函式的寫法
define a(a
,b)(
((b)
+(a))%((
a)*(
b)))
表示乙個函式名為a的帶有形式引數ab的函式,函式內容為後面括號中的內容,引用時例如printf("%5d",a(x,y));
即可
六、關於++a和a++
a++表示先用a進行運算,後加1;依照例子來說明++a表示先把a加1,後進行運算。
int a=
0,b=
1,c=0;
for(;;
)}
七、指標宣告的複雜形式
先介紹乙個法則——左右法則,官方給出的解釋是:
the right-left rule: start reading the declaration from the innermost parentheses, go right, and then go left. when you encounter parentheses, the direction should be reversed. once everything in the parentheses has been parsed, jump out of it. continue till the whole declaration has been parsed.即首先從最裡面的圓括號內未定義的識別符號開始閱讀看起,然後往右看,再往左看。每當遇到圓括號時,就應該掉轉閱讀方向。一旦解析完圓括號裡面所有的東西,就跳出圓括號。重複這個過程直到整個宣告解析完畢。
下面用幾個例子來解釋:
-------例一:
int*
(*a[5]
)(int, char*
);
首先看到識別符號名a,a是乙個陣列,這個陣列有5個元素,每乙個元素都是乙個指標,指標指向int* (int, char*)
,指向的是乙個函式,這個函式引數是int, char*
,返回值是int*
。
-------例二:
int(*
)()(
*c)[9]
;
c是乙個指標,指標指向乙個陣列,這個陣列有9個元素,每乙個元素都是int(*)()
(也是乙個函式指標,指向乙個函式,這個函式的引數為空,返回值是int型)。
八、關於陣列在各個表示式中的傳遞
陣列在scanf、gets、printf中的應用
例如下面:
char str[
100]
;printf
("please input:\n");
gets
(str)
;//注意這裡並不是gets(str)
----
-這裡的語句還可以替換成
scanf
("%s"
,str)
;//表示從str位置開始輸入,此處str相當於首位址
----
-printf
("%s"
,str)
;//注意這裡相當於從str開始持續輸出,見《四》,可以減少用陣列的各種問題
陣列在函式呼叫中的應用
例如下面:
int exchange
(char str)
int main()
九、時刻注意變數的有效域
一般用於儲存資料的陣列應放在主函式中,除了main以外的主函式可以用了更換位置、累加計算等等,但是不適合用來儲存資料陣列。(檔案除外)
近期的一些更新
xgcalendar 最新還是做了一些更新 2009 11 23 2 在demo中新增日程時可選擇日程的顏色分類 2009 11 24 3 新增對不同時區的處理,伺服器端也要對應做調整 2009 11 25 4 修正了本地快取在邊緣處理不當的 2009 11 25 5 修正了緩衝處理的幾個bug 2...
近期面試的一些感受
能力確實有差距,不是一天兩天乙個月兩個月可以補上的。雖然也準備了一段時間,把c 全部複習兩遍,primer也看了,資料結構也看了,演算法也看了,但是去了還是感覺自己會的太基礎了,主要缺在作業系統和網路上 投的崗位是pc端開發,而我平時做的都集中在影象處理和模式識別上,雖然都是寫程式,但是差別還是很大...
近期的一些學習計畫整理
近期 乙個季度內 的學習有兩個主線 1 工作中,以軟體架構為主,主要的三本資料 面向模式的體系結構,分析模式,企業應用架構 2 業餘以python為主,另外,使用python做乙個東西。除此之外,有兩本書基本讀完 黑客與畫家,程式設計人生。寫個總結。另外讀一下設計原本和軟體開發隨想錄。作為主線的乙個...