函數(shù)是C的基礎(chǔ),一定要把函數(shù)學(xué)通了,我知道C語(yǔ)言的學(xué)習(xí)是個(gè)復(fù)雜艱辛的過(guò)程。對(duì)于沒(méi)有老師、學(xué)校環(huán)境,沒(méi)有人指導(dǎo)的情況下的自學(xué)更是難。
創(chuàng)新互聯(lián)專注為客戶提供全方位的互聯(lián)網(wǎng)綜合服務(wù),包含不限于成都網(wǎng)站建設(shè)、網(wǎng)站制作、綠春網(wǎng)絡(luò)推廣、微信小程序、綠春網(wǎng)絡(luò)營(yíng)銷(xiāo)、綠春企業(yè)策劃、綠春品牌公關(guān)、搜索引擎seo、人物專訪、企業(yè)宣傳片、企業(yè)代運(yùn)營(yíng)等,從售前售中售后,我們都將竭誠(chéng)為您服務(wù),您的肯定,是我們最大的嘉獎(jiǎng);創(chuàng)新互聯(lián)為所有大學(xué)生創(chuàng)業(yè)者提供綠春建站搭建服務(wù),24小時(shí)服務(wù)熱線:13518219792,官方網(wǎng)址:www.cdcxhl.com
所以我想讓有經(jīng)驗(yàn)的人士幫我參謀建議下自學(xué)C語(yǔ)言的步驟,我好按部就班。下面是我搜索后自己排的一個(gè)步驟,請(qǐng)大家?guī)臀腋x謝!
1、最經(jīng)典的:《C程序設(shè)計(jì)語(yǔ)言》第2版,機(jī)械工業(yè)出版社
這個(gè)是C語(yǔ)言的設(shè)計(jì)者和UNIX系統(tǒng)的設(shè)計(jì)者合作編寫(xiě)的最經(jīng)典的C語(yǔ)言教材,原書(shū)名叫《The C Programming Language》當(dāng)然,這本書(shū)不太適合0起點(diǎn)的人,看這本書(shū)之前最好把《C程序設(shè)計(jì)》(譚浩強(qiáng),清華大學(xué))看了,老譚的書(shū)銷(xiāo)量突破700萬(wàn)冊(cè)了,雖然比較舊了,也不太符合新標(biāo)準(zhǔn)(現(xiàn)在出第3版了,也還是)但是,入門(mén)還是不錯(cuò)的選擇。
2、
另外還有必看的是《C Primer Plus》這個(gè)是一個(gè)美國(guó)人寫(xiě)的,人民郵電出版社出了中文版了,第5版,比較厚,磚頭書(shū),60元。但是非常適合初學(xué)的人,非常詳細(xì)。
還有《從問(wèn)題到程序——程序設(shè)計(jì)與C語(yǔ)言引論》機(jī)械工業(yè)出版社,這本書(shū)也很不錯(cuò)。
注意一下,這倆不是一個(gè)東西。 C語(yǔ)言寫(xiě)的東西就是用函數(shù)堆出來(lái)的。 而C#只有類,C#里是不允許存在類外方法的。追問(wèn): 我是想學(xué)習(xí)C語(yǔ)言可是不知道從哪學(xué)起?函數(shù)我不會(huì)能學(xué)么回答: 任何人都是從不會(huì)到會(huì)的。只要你能堅(jiān)持下去。。。 難道不是么???回答: 當(dāng)然不是,數(shù)學(xué)里函數(shù)在編程里最多算是一個(gè)解決問(wèn)題的算法 等你學(xué)了c你就明白了 這根本是兩回事追問(wèn): ...回答: #includestdio.h int main(){printf("Are you clear?");return 0;}這是一個(gè)程序 它只有一個(gè)主函數(shù)main 一個(gè)程序可以由多個(gè)函數(shù)構(gòu)成 在這里printf也是個(gè)函數(shù) 和數(shù)學(xué)函數(shù)壓根就沒(méi)關(guān)系追問(wèn): 意思是數(shù)學(xué)函數(shù)不懂也沒(méi)關(guān)系?回答:額。。。 想深入的話 還是學(xué)點(diǎn)的好 因?yàn)樗途幊汤锏乃惴P(guān)系不淺 而且你程序的運(yùn)行效率也會(huì)要用到它
C語(yǔ)言庫(kù)函數(shù),常用庫(kù)函數(shù)有:
1、scanf格式輸入函數(shù)
2、printf格式輸出函數(shù)
3、systemdos命令函數(shù)
4、sort排序
5、main主函數(shù)
6、fgets文件讀取字符串函數(shù)
7、fputs文件寫(xiě)入字符串函數(shù)
8、fscanf文件格式讀取函數(shù)
9、fprintf文件格式寫(xiě)入函數(shù)
10、fopen打開(kāi)文件函數(shù)
11、getchar輸入字符函數(shù)
12、putchar輸出字符函數(shù)
13、malloc動(dòng)態(tài)申請(qǐng)內(nèi)存函數(shù)
14、free釋放內(nèi)存函數(shù)
15、abs求絕對(duì)值數(shù)學(xué)函數(shù)
16、sqrt求平方根數(shù)學(xué)函數(shù)
擴(kuò)展資料
語(yǔ)言組成:
1、數(shù)據(jù)類型
C的數(shù)據(jù)類型包括:整型、字符型、實(shí)型或浮點(diǎn)型(單精度和雙精度)、枚舉類型、數(shù)組類型、結(jié)構(gòu)體類型、共用體類型、指針類型和空類型。
2、常量與變量
常量其值不可改變,符號(hào)常量名通常用大寫(xiě)。
變量是以某標(biāo)識(shí)符為名字,其值可以改變的量。標(biāo)識(shí)符是以字母或下劃線開(kāi)頭的一串由字母、數(shù)字或下劃線構(gòu)成的序列,請(qǐng)注意第一個(gè)字符必須為字母或下劃線,否則為不合法的變量名。變量在編譯時(shí)為其分配相應(yīng)存儲(chǔ)單元。
3、數(shù)組
如果一個(gè)變量名后面跟著一個(gè)有數(shù)字的中括號(hào),這個(gè)聲明就是數(shù)組聲明。字符串也是一種數(shù)組。它們以ASCII的NULL作為數(shù)組的結(jié)束。要特別注意的是,方括內(nèi)的索引值是從0算起的。
4、指針
如果一個(gè)變量聲明時(shí)在前面使用 * 號(hào),表明這是個(gè)指針型變量。換句話說(shuō),該變量存儲(chǔ)一個(gè)地址,而 *(此處特指單目運(yùn)算符 * ,下同。C語(yǔ)言中另有 雙目運(yùn)算符 *) 則是取內(nèi)容操作符,意思是取這個(gè)內(nèi)存地址里存儲(chǔ)的內(nèi)容。指針是 C 語(yǔ)言區(qū)別于其他同時(shí)代高級(jí)語(yǔ)言的主要特征之一。
參考資料來(lái)源:百度百科-函數(shù)
文件stddef.h里包含了標(biāo)準(zhǔn)庫(kù)的一些常用定義,無(wú)論我們包含哪個(gè)標(biāo)準(zhǔn)頭文件,stddef.h都會(huì)被自動(dòng)包含進(jìn)來(lái)。
這個(gè)文件里定義:
類型size_t (sizeof運(yùn)算符的結(jié)果類型,是某個(gè)無(wú)符號(hào)整型);
類型ptrdiff_t(兩個(gè)指針相減運(yùn)算的結(jié)果類型,是某個(gè)有符號(hào)整型);
類型wchar_t (寬字符類型,是一個(gè)整型,其中足以存放本系統(tǒng)所支持的所有本地環(huán)境中的字符集的所有編碼值。這里還保證空字符的編碼值為0);
符號(hào)常量NULL (空指針值);
宏offsetor (這是一個(gè)帶參數(shù)的宏,第一個(gè)參數(shù)應(yīng)是一個(gè)結(jié)構(gòu)類型,第二個(gè)參數(shù)應(yīng)是結(jié)構(gòu)成員名。 offsetor(s,m)求出成員m在結(jié)構(gòu)類型t的變量里的偏移量)。
C語(yǔ)言輸入輸出函數(shù)有很多,標(biāo)準(zhǔn)I/O函數(shù)中包含了如下幾個(gè)常用的函數(shù):
scanf,printf,getc,putc,getchar,putchar,gets,puts,fgets,fputs,fgetc,fputc,fscanf,fprintf等.
int
getc(FILE
*fp)
getc主要是從文件中讀出一個(gè)字符.常用的判斷文件是否讀取結(jié)束的語(yǔ)句為
(ch
=
getc(fp))
!=
EOF.EOF為文件結(jié)束標(biāo)志,定義在stdio.h中,就像EXIT_SUCCESS,EXIT_FAILURE定義在stdlib.h中一樣,文件也可以被理解為一種流,所以當(dāng)fp為stdin時(shí),getc(stdin)就等同于getchar()了.
int
putc(int
ch,FILE
*fp)
putc主要是把字符ch寫(xiě)到文件fp中去.如果fp為stdout,則putc就等同于putchar()了.
int
getchar(void)
getchar主要是從標(biāo)準(zhǔn)輸入流讀取一個(gè)字符.默認(rèn)的標(biāo)準(zhǔn)輸入流即stdio.h中定義的stdin.但是從輸入流中讀取字符時(shí)又涉及到緩沖的問(wèn)題,所以并不是在屏幕中敲上一個(gè)字符程序就會(huì)運(yùn)行,一般是通過(guò)在屏幕上敲上回車(chē)鍵,然后將回車(chē)前的字符串放在緩沖區(qū)中,getchar就是在緩沖區(qū)中一個(gè)一個(gè)的讀字符.當(dāng)然也可以在while循環(huán)中指定終止字符,如下面的語(yǔ)句:while
((c
=
getchar())
!=
'#')這是以#來(lái)結(jié)束的.
int
putchar(int
ch)
putchar(ch)主要是把字符ch寫(xiě)到標(biāo)準(zhǔn)流stdout中去.
char
*
gets(char
*str)
gets主要是從標(biāo)準(zhǔn)輸入流讀取字符串并回顯,讀到換行符時(shí)退出,并會(huì)將換行符省去.
int
puts(char
*str)
puts主要是把字符串str寫(xiě)到標(biāo)準(zhǔn)流stdout中去,并會(huì)在輸出到最后時(shí)添加一個(gè)換行符.
char
*fgets(char
*str,
int
num,
FILE
*fp)
str是存放讀入的字符數(shù)組指針,num是最大允許的讀入字符數(shù),fp是文件指針.fgets的功能是讀一行字符,該行的字符數(shù)不大于num-1.因?yàn)閒gets函數(shù)會(huì)在末尾加上一個(gè)空字符以構(gòu)成一個(gè)字符串.另外fgets在讀取到換行符后不會(huì)將其省略.
int
fputs(char
*str,
file
*fp)
fputs將str寫(xiě)入fp.fputs與puts的不同之處是fputs在打印時(shí)并不添加換行符.
int
fgetc(FILE
*fp)
fgetc從fp的當(dāng)前位置讀取一個(gè)字符.
int
fputc(int
ch,
file
*fp)
fputc是將ch寫(xiě)入fp當(dāng)前指定位置.
int
fscanf(FILE
*fp,
char
*format,
輸入列表)
fscanf按照指定格式從文件中出讀出數(shù)據(jù),并賦值到參數(shù)列表中.
int
fprintf(FILE
*fp,
char
*format,
輸出列表)
fprintf將格式化數(shù)據(jù)寫(xiě)入流式文件中.
數(shù)據(jù)塊讀寫(xiě)函數(shù)
fread
(buffer,size,count,fp);
fwrite(buffer,size,count,fp);
參數(shù)說(shuō)明:
buffer:是一個(gè)指針。
對(duì)fread
來(lái)說(shuō),它是讀入數(shù)據(jù)的存放地址。
對(duì)fwrite來(lái)說(shuō),是要輸出數(shù)據(jù)的地址(均指起始地址)。
size:
要讀寫(xiě)的字節(jié)數(shù)。
count:
要進(jìn)行讀寫(xiě)多少個(gè)size字節(jié)的數(shù)據(jù)項(xiàng)。
fp:
文件型指針。