目前最高學(xué)歷也只是本科隙轻,上的也不是計(jì)算機(jī)相關(guān)專(zhuān)業(yè)。
所以大一的時(shí)候C語(yǔ)言講的并不是特別深入忌傻。
看到別人的C和我的C好像哪里不一樣大脉,所以努力點(diǎn)了一下C技能點(diǎn)。
首先先點(diǎn)出文件操作技能點(diǎn)水孩。
所有學(xué)過(guò)的代碼內(nèi)容從來(lái)都是算算算镰矿,算出來(lái)的東西只是在編譯運(yùn)行之后閃現(xiàn)了一下,就隨著釋放內(nèi)存灰飛煙滅了俘种。
根據(jù)K&R的教材
需要聲明兩項(xiàng)
FILE *fp;
FILE *fopen(char *name, char *mode);
但是實(shí)際寫(xiě)的時(shí)候只用了FILE *fq;
如果加上FILE *fopen(char *name, char *mode);
則會(huì)被報(bào)錯(cuò)類(lèi)型沖突
想想也是秤标,fopen是個(gè)在<studio.h>
聲明好的函數(shù),在這里聲明自然會(huì)報(bào)錯(cuò)宙刘。
所以HelloWorld就是
#define SOMEPLACE 某個(gè)誰(shuí)都不知道是哪的地方
#include <stdio.h>
int main(int argc, const char * argv[]) {
FILE *fq;
fq = fopen("SOMEPLACE","wrt+");
fprintf(fq, "HelloWorld!");
return 0;
}
所以我們可以做這么一件事
某經(jīng)典例題:算閏年
雖然C已經(jīng)很快了苍姜,但是OJ畢竟是會(huì)有比速度的內(nèi)容的
比如讓輸出1900~2100年間的每一個(gè)閏年
我大一的時(shí)候的代碼應(yīng)該是:
#include<stdio.h>
int main(){
int year = 1900;
while (year <= 2100){
if(year % 4 == 0 && year % 400 != 0){
printf("%d\n",year++);
}
year++;
}
return 0;
}
同樣是當(dāng)時(shí)沒(méi)被培養(yǎng)到的技能:什么是幻數(shù)?|所以幻數(shù)是什么悬包?|
------------------------------|
譚浩強(qiáng)里的書(shū)里提到過(guò)幻數(shù)衙猪,但是當(dāng)時(shí)雖然不知道是什么同時(shí)也沒(méi)有過(guò)多的關(guān)注這個(gè)內(nèi)容,仔細(xì)想想這個(gè)應(yīng)該是個(gè)需要關(guān)注的習(xí)慣缺陷。|就是你沒(méi)在開(kāi)頭#define
的而在后面用了的常數(shù)垫释,讓人覺(jué)得莫名奇妙丝格。
比如我上面的內(nèi)容應(yīng)該寫(xiě)成
#define STARTYEAR 1900
#define ENDYEAR 2100
#include<stdio.h>
int main(){
int year = STARTYEAR;
while (year <= ENDYEAR){
if(year % 4 == 0 && year % 400 != 0){
printf("%d\n",year++);
}
year++;
}
return 0;
}
但是為了在OJ上速度快(其實(shí)OJ應(yīng)該不會(huì)問(wèn)基礎(chǔ)的問(wèn)題)
#define STARTYEAR 1900
#define ENDYEAR 2100
#define SOMEPLACE 某個(gè)誰(shuí)都不知道是哪的地方
#include<stdio.h>
int main(){
FILE *fq;
fq = fopen("SOMEPLACE","wrt+");
fprintf(fq, "HelloWorld!");
return 0;
int year = STARTYEAR;
while (year <= ENDYEAR){
if(year % 4 == 0 && year % 400 != 0){
fprintf(fq,"printf("%d\n");\n",year++);
}
year++;
}
return 0;
}
然后把生成好的一堆printf貼到事先準(zhǔn)備好的main函數(shù)里,就搞定了yeah棵譬。
懶得寫(xiě)下去了
寫(xiě)這么一坨感覺(jué):
- markdown好神奇显蝌,某種方面上感覺(jué)比用鼠標(biāo)點(diǎn)點(diǎn)點(diǎn)好用
- 簡(jiǎn)書(shū)做的好棒,快捷鍵保存也支持订咸,突然感覺(jué)在電腦上裝的Mou有點(diǎn)多余=曼尊。=|||
- Xcode的breakpoint很好用...