-
c語言int的取值范圍在于他占用的字節(jié)數(shù) ,不同的編譯器,規(guī)定是不一樣。
查看全部 -
基本數(shù)據(jù)類型
查看全部 -
在C語言中不能被其他源文件調(diào)用的函數(shù)稱謂內(nèi)部函數(shù)?,內(nèi)部函數(shù)由static關(guān)鍵字來定義,因此又被稱謂靜態(tài)函數(shù),形式為:
?static [數(shù)據(jù)類型] 函數(shù)名([參數(shù)])?
這里的static是對函數(shù)的作用范圍的一個限定,限定該函數(shù)只能在其所處的源文件中使用,因此在不同文件中出現(xiàn)相同的函數(shù)名稱的內(nèi)部函數(shù)是沒有問題的。
在C語言中能被其他源文件調(diào)用的函數(shù)稱謂外部函數(shù)?,外部函數(shù)由extern關(guān)鍵字來定義,形式為:
?extern [數(shù)據(jù)類型] 函數(shù)名([參數(shù)])?
C語言規(guī)定,在沒有指定函數(shù)的作用范圍時,系統(tǒng)會默認認為是外部函數(shù),因此當需要定義外部函數(shù)時extern也可以省略。
查看全部 -
C語言根據(jù)變量的生存周期來劃分,可以分為靜態(tài)存儲方式和動態(tài)存儲方式。
靜態(tài)存儲方式:是指在程序運行期間分配固定的存儲空間的方式。靜態(tài)存儲區(qū)中存放了在整個程序執(zhí)行過程中都存在的變量,如全局變量。
動態(tài)存儲方式:是指在程序運行期間根據(jù)需要進行動態(tài)的分配存儲空間的方式。動態(tài)存儲區(qū)中存放的變量是根據(jù)程序運行的需要而建立和釋放的,通常包括:函數(shù)形式參數(shù);自動變量;函數(shù)調(diào)用時的現(xiàn)場保護和返回地址等。
C語言中存儲類別又分為四類:自動(auto)、靜態(tài)(static)、寄存器的(register)和外部的(extern)。
1、用關(guān)鍵字auto定義的變量為自動變量,auto可以省略,auto不寫則隱含定為“自動存儲類別”,屬于動態(tài)存儲方式。如:
2、用static修飾的為靜態(tài)變量,如果定義在函數(shù)內(nèi)部的,稱之為靜態(tài)局部變量;如果定義在函數(shù)外部,稱之為靜態(tài)外部變量。如下為靜態(tài)局部變量:
注意:靜態(tài)局部變量屬于靜態(tài)存儲類別,在靜態(tài)存儲區(qū)內(nèi)分配存儲單元,在程序整個運行期間都不釋放;靜態(tài)局部變量在編譯時賦初值,即只賦初值一次;如果在定義局部變量時不賦初值的話,則對靜態(tài)局部變量來說,編譯時自動賦初值0(對數(shù)值型變量)或空字符(對字符變量)。
3、為了提高效率,C語言允許將局部變量得值放在CPU中的寄存器中,這種變量叫“寄存器變量”,用關(guān)鍵字register作聲明。例如:
注意:只有局部自動變量和形式參數(shù)可以作為寄存器變量;一個計算機系統(tǒng)中的寄存器數(shù)目有限,不能定義任意多個寄存器變量;局部靜態(tài)變量不能定義為寄存器變量。
4、用extern聲明的的變量是外部變量,外部變量的意義是某函數(shù)可以調(diào)用在該函數(shù)之后定義的變量。如:
查看全部 -
C語言中的變量,按作用域范圍可分為兩種,即局部變量和全局變量。
局部變量也稱為內(nèi)部變量。局部變量是在函數(shù)內(nèi)作定義說明的。其作用域僅限于函數(shù)內(nèi), 離開該函數(shù)后再使用這種變量是非法的。在復(fù)合語句中也可定義變量,其作用域只在復(fù)合語句范圍內(nèi)。
全局變量也稱為外部變量,它是在函數(shù)外部定義的變量。它不屬于哪一個函數(shù),它屬于一個源程序文件。其作用域是整個源程序。
查看全部 -
遞歸函數(shù)必須有結(jié)束條件。
遞歸函數(shù)特點:
- 每一級函數(shù)調(diào)用時都有自己的變量,但是函數(shù)代碼并不會得到復(fù)制,如計算5的階乘時每遞推一次變量都不同;
- 每次調(diào)用都會有一次返回,如計算5的階乘時每遞推一次都返回進行下一次;
- 遞歸函數(shù)中,位于遞歸調(diào)用前的語句和各級被調(diào)用函數(shù)具有相同的執(zhí)行順序;
- 遞歸函數(shù)中,位于遞歸調(diào)用后的語句的執(zhí)行順序和各個被調(diào)用函數(shù)的順序相反;
- 遞歸函數(shù)中必須有終止語句。
一句話總結(jié)遞歸:自我調(diào)用且有完成狀態(tài)。
查看全部 -
遞歸就是一個函數(shù)在它的函數(shù)體內(nèi)調(diào)用它自身。執(zhí)行遞歸函數(shù)將反復(fù)調(diào)用其自身,每調(diào)用一次就進入新的一層。
查看全部 -
函數(shù)的返回值是指函數(shù)被調(diào)用之后,執(zhí)行函數(shù)體中的程序段所取得的并返回給主調(diào)函數(shù)的值。
函數(shù)的返回值要注意以下幾點:
1. 函數(shù)的值只能通過return語句返回主調(diào)函數(shù)。return語句的一般形式為:
????return 表達式?? 或者為:? return (表達式);
2. 函數(shù)值的類型和函數(shù)定義中函數(shù)的類型應(yīng)保持一致。如果兩者不一致,則以函數(shù)返回類型為準,自動進行類型轉(zhuǎn)換。
3. 沒有返回值的函數(shù),返回類型為void(空)。注意:void函數(shù)中可以有執(zhí)行代碼塊,但是不能有返回值,另void函數(shù)中如果有return語句,該語句只能起到結(jié)束函數(shù)運行的功能。其格式為:return;
查看全部 -
函數(shù)的參數(shù)分為形參和實參兩種,形參是在定義函數(shù)名和函數(shù)體的時候使用的參數(shù),目的是用來接收調(diào)用該函數(shù)時傳入的參數(shù),就類似小明,說了的話而不實際行動;實參是在調(diào)用時傳遞該函數(shù)的參數(shù),就如小剛能實際行動起來。
函數(shù)的形參和實參具有以下特點:
- 形參只有在被調(diào)用時才分配內(nèi)存單元,在調(diào)用結(jié)束時,即刻釋放所分配的內(nèi)存單元。因此,形參只有在函數(shù)內(nèi)部有效。函數(shù)調(diào)用結(jié)束返回主調(diào)函數(shù)后則不能再使用該形參變量。
- 實參可以是常量、變量、表達式、函數(shù)等,無論實參是何種類型的量,在進行函數(shù)調(diào)用時,它們都必須具有確定的值,以便把這些值傳送給形參。因此應(yīng)預(yù)先用賦值等辦法使實參獲得確定值。
- 在參數(shù)傳遞時,實參和形參在數(shù)量上,類型上,順序上應(yīng)嚴格一致,否則會發(fā)生類型不匹配”的錯誤。
查看全部 -
在函數(shù)中不需要函數(shù)參數(shù)的稱之為無參函數(shù),在函數(shù)中需要函數(shù)參數(shù)的稱之為有參函數(shù),有參和無參函數(shù)的一般形式如下:
有參函數(shù)和無參函數(shù)的唯一區(qū)別在于:函數(shù)()中多了一個參數(shù)列表。
查看全部 -
函數(shù)調(diào)用的一般形式為:
?函數(shù)名([參數(shù)]);?
注意:
1、對無參函數(shù)調(diào)用的時候可以將[]包含的省略。
2、[]中可以是常數(shù),變量或其它構(gòu)造類型數(shù)據(jù)及表達式,各參數(shù)之間用逗號分隔。
查看全部 -
自定義函數(shù)的一般形式:
注意:
1、[]包含的內(nèi)容可以省略,數(shù)據(jù)類型說明省略,默認是int類型函數(shù);參數(shù)省略表示該函數(shù)是無參函數(shù),參數(shù)不省略表示該函數(shù)是有參函數(shù);
2、函數(shù)名稱遵循標識符命名規(guī)范;
3、自定義函數(shù)盡量放在main函數(shù)之前,如果要放在main函數(shù)后面的話,需要在main函數(shù)之前先聲明自定義函數(shù),聲明格式為:[數(shù)據(jù)類型說明] 函數(shù)名稱([參數(shù)]);
查看全部 -
:多維數(shù)組的每一維下標均不能越界
查看全部 -
?多維數(shù)組的定義格式是:
數(shù)據(jù)類型 數(shù)組名稱[常量表達式1][常量表達式2]...[常量表達式n];
多維數(shù)組的初始化與一維數(shù)組的初始化類似也是分兩種:
1、數(shù)據(jù)類型 數(shù)組名稱[常量表達式1][常量表達式2]...[常量表達式n] = {{值1,..,值n},{值1,..,值n},...,{值1,..,值n}};
2、數(shù)據(jù)類型 數(shù)組名稱[常量表達式1][常量表達式2]...[常量表達式n]; 數(shù)組名稱[下標1][下標2]...[下標n] = 值;
多維數(shù)組初始化要注意以下事項:
1、采用第一種始化時數(shù)組聲明必須指定列的維數(shù)。因為系統(tǒng)會根據(jù)數(shù)組中元素的總個數(shù)來分配空間,當知道元素總個數(shù)以及列的維數(shù)后,會直接計算出行的維數(shù);
2、采用第二種初始化時數(shù)組聲明必須同時指定行和列的維數(shù)。
查看全部 -
?注意以下事項:
1、strlen()獲取字符串的長度,在字符串長度中是不包括‘\0’而且漢字和字母的長度是不一樣的。比如:
2、strcmp()在比較的時候會把字符串先轉(zhuǎn)換成ASCII碼再進行比較,返回的結(jié)果為0表示s1和s2的ASCII碼相等,返回結(jié)果為1表示s1比s2的ASCII碼大,返回結(jié)果為-1表示s1比s2的ASCII碼小,例如:
3、strcpy()拷貝之后會覆蓋原來字符串且不能對字符串常量進行拷貝
?4、strcat在使用時s1與s2指的內(nèi)存空間不能重疊,且s1要有足夠的空間來容納要復(fù)制的字符串,如:
查看全部
舉報