欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

分析C語(yǔ)言一個(gè)簡(jiǎn)單程序

 更新時(shí)間:2016年07月19日 15:34:22   投稿:lqh  
本文主要介紹C語(yǔ)言簡(jiǎn)單的程序,這里給大家詳細(xì)介紹C語(yǔ)言代碼,對(duì)函數(shù)概念、頭文件、自定義函數(shù)等基礎(chǔ)信息的講解,希望能幫助剛剛學(xué)習(xí)的同學(xué)

首先給大家一個(gè)簡(jiǎn)單的例子,讓讀者有個(gè)整體的認(rèn)識(shí),代碼如下:

#include <stdio.h>
int main()
{
 puts("腳本之家");
 return 0;
}

函數(shù)的概念

先來(lái)看第4行代碼,這行代碼會(huì)在顯示器上輸出“腳本之家”。前面我們已經(jīng)講過(guò),puts 后面要帶( ),字符串也要放在( )中。

在C語(yǔ)言中,有的語(yǔ)句使用時(shí)不能帶括號(hào),有的語(yǔ)句必須帶括號(hào)。帶括號(hào)的稱為函數(shù)(Function) 。

C語(yǔ)言提供了很多功能,例如輸入輸出、獲得日期時(shí)間、文件操作等,我們只需要一句簡(jiǎn)單的代碼就能夠使用。但是這些功能的底層都比較復(fù)雜,通常是軟件和硬件的結(jié)合,還要要考慮很多細(xì)節(jié)和邊界,如果將這些功能都交給程序員去完成,那將極大增加程序員的學(xué)習(xí)成本,降低編程效率。

好在C語(yǔ)言的開發(fā)者們?yōu)槲覀冏隽艘患檬?,他們已?jīng)編寫了大量代碼,將常見的基本功能都完成了,我們可以直接拿來(lái)使用。但是現(xiàn)在問(wèn)題來(lái)了,那么多代碼,如何從中找到自己需要的呢?一股腦將所有代碼都拿來(lái)顯然是非常不明智的。

這些代碼,早已被分門別類地放在了不同的文件中,并且每一段代碼都有唯一的名字。使用代碼時(shí),只要在對(duì)應(yīng)的名字后面加上( )就可以。這樣的一段代碼能夠獨(dú)立地完成某個(gè)功能,一次編寫完成后可以重復(fù)使用,被稱為函數(shù)(Function)。讀者可以認(rèn)為,函數(shù)就是一段可以重復(fù)使用的代碼。

函數(shù)的一個(gè)明顯特征就是使用時(shí)必須帶括號(hào)( ),必要的話,括號(hào)中還可以包含待處理的數(shù)據(jù)。例如puts("腳本之家")就使用了一段具有輸出功能的代碼,這段代碼的名字是 puts,"腳本之家" 是要交給這段代碼處理的數(shù)據(jù)。使用函數(shù)在編程中有專業(yè)的稱呼,叫做函數(shù)調(diào)用(Function Call)。

如果函數(shù)需要處理多個(gè)數(shù)據(jù),那么它們之間使用逗號(hào),分隔,例如:

pow(10, 2);

該函數(shù)用來(lái)求10的2次方。

需要注意的是,C語(yǔ)言中的函數(shù)和數(shù)學(xué)中的函數(shù)不是同一個(gè)概念,不要拿兩者對(duì)比。函數(shù)的英文名稱是 Function,它還有“功能”的意思。大陸將 Function 翻譯為“函數(shù)”,而臺(tái)灣地區(qū)翻譯為“函式”,讀者要注意區(qū)分。

自定義函數(shù)和main函數(shù)

C語(yǔ)言自帶的函數(shù)稱為庫(kù)函數(shù)(Library Function) 。庫(kù)(Library)是編程中的一個(gè)基本概念,可以簡(jiǎn)單地認(rèn)為它是一些列函數(shù)的集合,在磁盤上往往是一個(gè)文件夾。C語(yǔ)言自帶的庫(kù)稱為標(biāo)準(zhǔn)庫(kù)(Standard Library) ,其他公司或個(gè)人開發(fā)的庫(kù)稱為第三方庫(kù)(Third-Party Library) 。

除了庫(kù)函數(shù),我們還可以編寫自己的函數(shù),拓展程序的功能。自己編寫的函數(shù)稱為自定義函數(shù)。自定義函數(shù)和庫(kù)函數(shù)在編寫和使用方式上完全相同,只是由不同的機(jī)構(gòu)來(lái)編寫。

示例中第2~6行代碼就是我們自己編寫的一個(gè)函數(shù)。main 是函數(shù)的名字,( ) 表明這是函數(shù)定義,{ } 之間的代碼是函數(shù)要實(shí)現(xiàn)的功能。

函數(shù)可以接收待處理的數(shù)據(jù),同樣可以將處理結(jié)果告訴我們;使用return可以告知處理結(jié)果。示例中第5行代碼表明,main 函數(shù)的處理結(jié)果是整數(shù) 0。return 可以翻譯為“返回”,所以函數(shù)的處理結(jié)果被稱為返回值(Return Value) 。

第2行代碼中,int 是 integer 的簡(jiǎn)寫,意為“整數(shù)”。它告訴我們,函數(shù)的返回值是整數(shù)。

需要注意的是,示例中的自定義函數(shù)必須命名為 main。C語(yǔ)言規(guī)定,一個(gè)程序必須有且只有一個(gè) main 函數(shù)。main 被稱為主函數(shù),是程序的入口函數(shù),程序運(yùn)行時(shí)從 main 函數(shù)開始,直到 main 函數(shù)結(jié)束(遇到 return 或者執(zhí)行到函數(shù)末尾時(shí),函數(shù)才結(jié)束)。

也就是說(shuō),沒有 main 函數(shù)程序?qū)⒉恢缽哪睦镩_始執(zhí)行,運(yùn)行時(shí)會(huì)報(bào)錯(cuò)。

綜上所述:第2~6行代碼定義了主函數(shù) main,它的返回值是整數(shù) 0,程序?qū)倪@里開始執(zhí)行。main 函數(shù)的返回值在程序運(yùn)行結(jié)束時(shí)由系統(tǒng)接收。

關(guān)于自定義函數(shù)的更多內(nèi)容,我們將在《C語(yǔ)言函數(shù)》一章中詳細(xì)講解,這里不再展開討論。

有的教材中將 main 函數(shù)寫作:

void main()
{
 // Some Code...
}

這在 VC6.0 下能夠通過(guò)編譯,但在 C-Free、GCC 中卻會(huì)報(bào)錯(cuò),因?yàn)檫@不是標(biāo)準(zhǔn)的 main 函數(shù)的寫法,大家不要被誤導(dǎo),最好按照示例中的格式來(lái)寫。

頭文件的概念

還有最后一個(gè)問(wèn)題,示例中第1行的#include <stdio.h>是什么意思呢?

C語(yǔ)言開發(fā)者們編寫了很多常用函數(shù),并分門別類的放在了不同的文件,這些文件就稱為頭文件(header file) 。每個(gè)頭文件中都包含了若干個(gè)功能類似的函數(shù),調(diào)用某個(gè)函數(shù)時(shí),要引入對(duì)應(yīng)的頭文件,否則編譯器找不到函數(shù)。

實(shí)際上,頭文件往往只包含函數(shù)的說(shuō)明,也就是告訴我們函數(shù)怎么用,而函數(shù)本身保存在其他文件中,在鏈接時(shí)才會(huì)找到。對(duì)于初學(xué)者,可以暫時(shí)理解為頭文件中包含了若干函數(shù)。

引入頭文件使用#include命令,并將文件名放在< >中,#include 和 < > 之間可以有空格,也可以沒有。

頭文件以.h為后綴,而C語(yǔ)言代碼文件以.c為后綴,它們都是文本文件,沒有本質(zhì)上的區(qū)別,#include 命令的作用也僅僅是將頭文件中的文本復(fù)制到當(dāng)前文件,然后和當(dāng)前文件一起編譯。你可以嘗試將頭文件中的內(nèi)容復(fù)制到當(dāng)前文件,那樣也可以不引入頭文件。

.h中代碼的語(yǔ)法規(guī)則和.c中是一樣的,你也可以#include <xxx.c>,這是完全正確的。不過(guò)實(shí)際開發(fā)中沒有人會(huì)這樣做,這樣看起來(lái)非常不專業(yè),也不規(guī)范。

較早的C語(yǔ)言標(biāo)準(zhǔn)庫(kù)包含了15個(gè)頭文件,stdio.h 和 stdlib.h 是最常用的兩個(gè):

stdio 是 standard input ouput 的縮寫,stdio.h 被稱為“標(biāo)準(zhǔn)輸入輸出文件”,包含的函數(shù)大都和輸入輸出有關(guān),puts() 就是其中之一。

stdlib 是 standard library 的縮寫,stdlib.h 被稱為“標(biāo)準(zhǔn)庫(kù)文件”,包含的函數(shù)比較雜亂,多是一些通用工具型函數(shù),system() 就是其中之一。

最后的總結(jié)

初學(xué)編程,有很多基本概念需要了解,本節(jié)就涉及到很多,建議大家把上面的內(nèi)容多讀幾遍,必將有所收獲。

本節(jié)開頭的示例是一個(gè)C語(yǔ)言程序的基本結(jié)構(gòu),我們不妨整理一下思路,從整體上再分析一遍:

1) 第1行引入頭文件 stdio.h,這是編程中最常用的一個(gè)頭文件。頭文件不是必須要引入的,我們用到了 puts 函數(shù),所以才引入 stdio.h。例如下面的代碼完全正確:

int main()
{
 return 0;
}

我們沒有調(diào)用任何函數(shù),所以不必引入頭文件。

2) 第2行開始定義主函數(shù) main。main 是程序的入口函數(shù),一個(gè)C程序必須有 main 函數(shù),而且只能有一個(gè)。

3) 第4行調(diào)用 puts 函數(shù)向顯示器輸出字符串。

4) 第5行是 main 函數(shù)的返回值。程序運(yùn)行正確一般返回 0。

以上就是對(duì) C語(yǔ)言簡(jiǎn)單程序的分析,希望能幫到初學(xué)者。

相關(guān)文章

  • C++?二叉樹的實(shí)現(xiàn)超詳細(xì)解析

    C++?二叉樹的實(shí)現(xiàn)超詳細(xì)解析

    二叉樹可以簡(jiǎn)單理解為對(duì)于一個(gè)節(jié)點(diǎn)來(lái)說(shuō),最多擁有一個(gè)上級(jí)節(jié)點(diǎn),同時(shí)最多具備左右兩個(gè)下級(jí)節(jié)點(diǎn)的數(shù)據(jù)結(jié)構(gòu)。本文將詳細(xì)介紹一下C++中二叉樹的實(shí)現(xiàn)和遍歷,需要的可以參考一下
    2022-03-03
  • 使用C語(yǔ)言實(shí)例描述程序中的內(nèi)聚和耦合問(wèn)題

    使用C語(yǔ)言實(shí)例描述程序中的內(nèi)聚和耦合問(wèn)題

    這篇文章主要介紹了用C語(yǔ)言實(shí)例描述程序中的內(nèi)聚和耦合,本文通過(guò)示例代碼給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2021-08-08
  • C++類中隱藏的幾個(gè)默認(rèn)函數(shù)你知道嗎

    C++類中隱藏的幾個(gè)默認(rèn)函數(shù)你知道嗎

    這篇文章主要為大家詳細(xì)介紹了C++類中隱藏的幾個(gè)默認(rèn)函數(shù),使用數(shù)據(jù)庫(kù),文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下,希望能夠給你帶來(lái)幫助
    2022-03-03
  • 通過(guò)c++的sort函數(shù)實(shí)現(xiàn)成績(jī)排序功能

    通過(guò)c++的sort函數(shù)實(shí)現(xiàn)成績(jī)排序功能

    這篇文章主要介紹了通過(guò)c++的sort函數(shù)實(shí)現(xiàn)成績(jī)排序,本文通過(guò)實(shí)例代碼給大家介紹的非常詳細(xì),具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2020-02-02
  • C++?電話號(hào)碼的字母組合功能實(shí)現(xiàn)

    C++?電話號(hào)碼的字母組合功能實(shí)現(xiàn)

    這篇文章主要介紹了C++?電話號(hào)碼的字母組合,本文通過(guò)實(shí)例代碼給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2022-08-08
  • C++ string 字符串查找匹配實(shí)例代碼

    C++ string 字符串查找匹配實(shí)例代碼

    下面小編就為大家?guī)?lái)一篇C++ string 字符串查找匹配實(shí)例代碼。小編覺得挺不錯(cuò)的,現(xiàn)在就分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧
    2016-10-10
  • C語(yǔ)言進(jìn)階學(xué)習(xí)之指針

    C語(yǔ)言進(jìn)階學(xué)習(xí)之指針

    關(guān)于指針,其是C語(yǔ)言的重點(diǎn),C語(yǔ)言學(xué)的好壞,其實(shí)就是指針學(xué)的好壞。其實(shí)指針并不復(fù)雜,學(xué)習(xí)指針,要正確的理解指針,本片文章能給就來(lái)學(xué)習(xí)一下
    2021-09-09
  • 詳解C++編程中的析構(gòu)函數(shù)

    詳解C++編程中的析構(gòu)函數(shù)

    這篇文章主要介紹了C++編程中的析構(gòu)函數(shù),是C++入門學(xué)習(xí)中的基礎(chǔ)知識(shí),需要的朋友可以參考下
    2015-09-09
  • 深入分析C++中兩個(gè)大數(shù)相乘結(jié)果不正確的問(wèn)題

    深入分析C++中兩個(gè)大數(shù)相乘結(jié)果不正確的問(wèn)題

    本篇文章是對(duì)C++中兩個(gè)大數(shù)相乘結(jié)果不正確的問(wèn)題進(jìn)行了詳細(xì)的分析介紹,需要的朋友參考下
    2013-05-05
  • OPENCV批量讀取圖片實(shí)現(xiàn)方法

    OPENCV批量讀取圖片實(shí)現(xiàn)方法

    下面小編就為大家?guī)?lái)一篇OPENCV批量讀取圖片實(shí)現(xiàn)方法。小編覺得挺不錯(cuò)的?,F(xiàn)在就分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧
    2017-06-06

最新評(píng)論