考慮到main函數(shù)的特殊性,lz不明白這個問題可以理解。
在漢壽等地區(qū),都構(gòu)建了全面的區(qū)域性戰(zhàn)略布局,加強發(fā)展的系統(tǒng)性、市場前瞻性、產(chǎn)品創(chuàng)新能力,以專注、極致的服務(wù)理念,為客戶提供做網(wǎng)站、成都網(wǎng)站設(shè)計 網(wǎng)站設(shè)計制作定制網(wǎng)站設(shè)計,公司網(wǎng)站建設(shè),企業(yè)網(wǎng)站建設(shè),高端網(wǎng)站設(shè)計,成都全網(wǎng)營銷推廣,外貿(mào)網(wǎng)站建設(shè),漢壽網(wǎng)站建設(shè)費用合理。
main()是省略了返回值類型,C語言會默認(rèn)認(rèn)為成main的類型為int,在main()的函數(shù)體內(nèi)要返回一個值,如return 0;
而void main()的返回值是void類型,也就是說沒有返回值。這樣在main()的函數(shù)體內(nèi)你就不用寫return 0;或者return 1;之類的返回語句。
在一個程序中,可以說你看不出兩者的差別,因為main()是C語言的入口點,入口點如果返回了程序也就結(jié)束了,因此C語言的這個特性似乎沒用。可沒用的話,C語言的設(shè)計者為什么要這么做呢?!肯定有用。
沒錯,前面我說的是在一個程序中,它似乎沒用。可如果一個程序prog2調(diào)用另一個程序prog1的話(這里指的是prog2直接調(diào)用prog1編譯好的可執(zhí)行文件),那么這個特性就有用了。因為prog2要知道prog1運行之后的狀態(tài)。比如你用C寫了一個刪除文件的程序(暫且命名為delf),然后用另一個程序去調(diào)用delf,那么調(diào)用結(jié)果怎么樣啊?這個文件是否刪掉了?這是int main()就會派上用場了。C語言中默認(rèn)的main如果返回為0,那么這個程序調(diào)用就成功了,其他值,則為不同的錯誤代碼。在你的delf程序中,如果那個文件刪除成功,那么就在int main()中返回0,其他調(diào)用delf的程序就知道,噢,這個操作成功了。
在unix/linux系統(tǒng)中的很多命令都是通過這種方式獲得運行結(jié)果的。
關(guān)于譚浩強的書,我想不用多說,發(fā)行量說明了一切。畢竟第二版在編寫的時候還比較早,而第三版根據(jù)很多現(xiàn)在的需要進(jìn)行了改寫,內(nèi)容當(dāng)然會好些。鑒于lz是初學(xué)C,其實大可不必在這個問題上浪費太多時間,當(dāng)你有了更多的項目經(jīng)驗,對這個問題會有更深刻的理解。
上面我已經(jīng)給出了main()、int main()和void main()的區(qū)別,但建議lz忽略這個差別,認(rèn)為成二者一樣,先把C的其他部分學(xué)好。至于只寫成main(),我并不推薦,就算編譯器通過了,這種編程的風(fēng)格也太不嚴(yán)謹(jǐn),不利于好的習(xí)慣的養(yǎng)成。
注意一下這個函數(shù)void insert (char *family, char *first, char *address, char *phonenumber, phoneptr head)
{head=newentry (family, first, address, phonenumber,head);}
,你的head是一個什么我不太清楚,但是由于函數(shù)是值傳遞的,你的head僅僅是傳遞了一個值的拷貝而已 ,而里面函數(shù)的操作也是對于這個拷貝進(jìn)行的,而這個函數(shù)沒有返回值,當(dāng)你直接調(diào)用的時候當(dāng)然head不會指向任何東西了,但是你要是調(diào)用head=newentry (family, first, address, phonenumber,head);之后,那么因為這個函數(shù)有一個返回值,雖然和那個的作用是一樣的,但是這個函數(shù)把返回值直接賦值給了你定義的那個變量,而不是拷貝的變量,所以head就會有指向了,要是要用一個void的函數(shù)來實現(xiàn)的,我覺得應(yīng)該這樣子:
void insert (char *family, char *first, char *address, char *phonenumber, phoneptr *head)
{* head=newentry (family, first, address, phonenumber,head);}
要是類型不匹配那你再轉(zhuǎn)換一下,反正就是要吧head的地址傳進(jìn)去,然后再對它的值,一定要是值,因為你傳入的也是一個地址的拷貝,如果僅僅對地址操作是沒有作用的,只能對地址指向的值的操作才能改變的
C語言程序結(jié)構(gòu)的特點是順序結(jié)構(gòu)、選擇結(jié)構(gòu)、循環(huán)結(jié)構(gòu)。
1、順序結(jié)構(gòu),默認(rèn)的流程結(jié)構(gòu),按照書寫順序執(zhí)行每一條語句。
2、選擇結(jié)構(gòu),對給定的條件進(jìn)行判斷,再根據(jù)判斷結(jié)果來決定執(zhí)行那一段代碼。
3、循環(huán)結(jié)構(gòu),在給定條件成立的情況下,反復(fù)執(zhí)行某一段代碼。只有滿足條件是才會執(zhí)行循環(huán)體,特別注意是否進(jìn)入了死循環(huán)。
擴展資料
C語言程序設(shè)計還能幫助我們學(xué)習(xí)其它計算機語言如我們熟悉的java語言vb語 言的設(shè)計,因此C語言是初學(xué)者必備的語言。
馮.諾依曼在1945年提出了現(xiàn)代計算機的若干思想,被后人稱為馮.諾依曼思想,這是計算機發(fā)展史上的里程碑。自1945 年至今大多采用其結(jié)構(gòu),因此馮.諾依曼被稱為計算機之父。
他的體系結(jié)構(gòu)計算機由運算器,控制器,存儲器,輸入設(shè)備,輸出設(shè)備五大部件構(gòu)成。C語言擁有一套完整的理論體系經(jīng)過了漫長的發(fā)展歷史,在編程語言中具有舉足輕重的地位。
參考資料來源:?百度百科—c語言
參考資料來源:百度百科-c語言程序設(shè)計
分享文章:初學(xué)者c語言函數(shù),C語言基本函數(shù)
分享鏈接:http://vcdvsql.cn/article6/hshpog.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供微信小程序、網(wǎng)站內(nèi)鏈、全網(wǎng)營銷推廣、網(wǎng)頁設(shè)計公司、靜態(tài)網(wǎng)站、虛擬主機
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)