小記:
宏定義
#define MAX(a,b)? (a)>(b)?(a):(b)
#給參數(shù)加括號(hào)是因?yàn)閍,b可能為表達(dá)式
作用域
在子函數(shù)中的大括號(hào)中定義的變量要注意其作用域和生存周期問(wèn)題,以及要著重注意是否在循環(huán)體內(nèi)的問(wèn)題
問(wèn)題:
能否讓一個(gè)子函數(shù)一次調(diào)用多次返回處理結(jié)果
處理方式:用多進(jìn)程或者線程的方式,子函數(shù)循環(huán)調(diào)用,與父進(jìn)程通信。
如何通過(guò)匯編來(lái)識(shí)別調(diào)用子函數(shù)時(shí)傳入的地址上的數(shù)據(jù)類型。
關(guān)于數(shù)組的長(zhǎng)度
到目前為止,只能做到規(guī)定最大長(zhǎng)度來(lái)適應(yīng)處理長(zhǎng)度。
方案:通過(guò)設(shè)置一個(gè)指針,分別通過(guò)arr [ j ] 的方式進(jìn)行儲(chǔ)值。
結(jié)果:使用時(shí),提示必須初始化,還是需要MALLOC分配最大空間的數(shù)組長(zhǎng)度。
關(guān)于子函數(shù)
當(dāng)需要用子函數(shù)處理同一數(shù)據(jù),返回多個(gè)結(jié)果的時(shí)候,可以:
? ? ? ? 通過(guò)傳入指針參數(shù)記錄處理結(jié)果來(lái)代替多個(gè)結(jié)果的返回。
關(guān)于字符數(shù)組
當(dāng)前遇到的所有的char ?arr[max]數(shù)組都不能訪問(wèn)arr[max]這個(gè)地址。
在vs中char arr[max]只能存儲(chǔ)max-1 個(gè)字符,其自動(dòng)添加結(jié)束符,并認(rèn)定為max長(zhǎng)度的字符串,對(duì)應(yīng)的arr[max-1]用來(lái)存放‘\0’;
而在一些如linux中的c編譯器,其可以添加
指針增減
記?。浩溆肋h(yuǎn)是移動(dòng)指針類型個(gè)單位,移動(dòng)了sizeof(type)*num個(gè)地址單位,但是這個(gè)地址單位不能通過(guò)C進(jìn)行修改。