2
3
4
5
6
7
8
9
10
今天是第一天補(bǔ)課,終于有又機(jī)會可以聽到林老師的課了,我覺得他比老潭說得還要好呢,雖然我沒有聽過老潭的課,不過我相信絕大部份在校的人學(xué)C語言都是用老潭的《C程序設(shè)計》吧。這本書的好處是有很多的,最主要的一點就是可以用生動的例子來說明一些概念,不過還是一點不好的地方,就是本書全都只是圍繞著基礎(chǔ)來說,沒有一些可以讓同學(xué)深入研究的課題。就我知道機(jī)械工業(yè)譯的一本《C語言設(shè)計教程》,這本書有大量的實例練習(xí),而且是圍繞著生活的。學(xué)習(xí)和樂趣合在一齊,我在看這本書時都有好幾個特別吸引我的興趣課題呢!書就介紹到這里吧,還是說回今天補(bǔ)課的情況。
今天因為第一天吧,老師還不太清楚我們的底究竟到那里。是因為我們之前都是全自學(xué)的,所以現(xiàn)在要摸一摸底吧。一開始,他直接引入了上界程序員考試的下午的第一道題,是一道編程填空題。如下:
int strcmp( char *s, char *t)
{
while(*s && *t && _______)
{ s++;t++;
}
return ________;
}
這是模仿C語言字符函數(shù)庫里的字符比較函數(shù),當(dāng)時我第一時間就想到了一種方法,第一空因為大家都沒有問題吧,*s和*t這兩個都保持為邏輯真就行,表明這個存儲單元是用字符的,大家都知道C語言里沒有字符串這種變量的,只有字符數(shù)組,'\0'這個符號就是用來表明這個字符數(shù)組到了結(jié)尾了,這里又有一個新的概念要說說的了,就是C語言邏輯里非零的都為真,那么'\0'這個符號就是為零。所以填這個空就應(yīng)該沒有什么太大的難度了,跟著就是還要有一個條件退出循環(huán),因為是比較大小,只要保持一樣都繼續(xù),所以條件也很顯示的可以寫出來*s == *t。至于第二題當(dāng)時我的思維就銷定在條件運算符里,因為返回的值是有三種可以性的,大于返回正數(shù),等于就返回零,小于就返回負(fù)數(shù)。知道了這三種可能就可以用條件運算符填了,我當(dāng)時的答案是這樣的 *s == *t ? 0: *s>*t ? 1 : -1 ,這是不是很長呢,其實我的答案我也不知道是否對,但是真正的答案是 *s - * t .知道答案為什么是這樣嗎?當(dāng)時我也一時給答案嚇住啦,因為當(dāng)時我真想到是用它們本身的比較就可以得出結(jié)果(運用ACSII碼),*s - *t 如果s指針?biāo)赶虻膯卧绻谴笥诋?dāng)然就是正數(shù)啦,跟著其它的原理一樣,這里不再詳細(xì)說明。
除了引用這道答給我們說了很多的基礎(chǔ)知識外,還更詳細(xì)地給我們介紹了指針,唉!為什么老師說的總是這么的清晰明白,如果當(dāng)初可以老師教的話就可以走少很多彎路了。算了,說這些話都是沒有用的,只有現(xiàn)在能學(xué)好就行了。大家都指針的基礎(chǔ)還有些吧,這里重要的提一提老師今天反復(fù)強(qiáng)調(diào)的一個概念,就是指針就是指向地址的一個變量。好了,今天就到這里吧。
- 推薦給朋友
- 收藏此頁
·程序員考試補(bǔ)課筆記-第八天 (2004-12-27 13:29:00)
·程序員考試補(bǔ)課筆記-第七天 (2004-12-27 13:28:00)
·程序員考試補(bǔ)課筆記-第六天 (2004-12-27 13:27:00)
·程序員考試補(bǔ)課筆記-第四天 (2004-12-27 13:26:00)
·程序員考試補(bǔ)課筆記-第三天 (2004-12-26 13:21:00)
如果軟件水平考試網(wǎng)所轉(zhuǎn)載內(nèi)容不慎侵犯了您的權(quán)益,請與我們聯(lián)系,我們將會及時處理。如轉(zhuǎn)載本軟件水平考試網(wǎng)內(nèi)容,請注明出處。