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