static定義的函數,怎么使用?
靜態定義了變量的使用:
一、靜態局部變量:
1.靜態類的內部變量和auto自動變量一樣是特定函數的局部變量(即沒有靜態聲明的局部變量),即變量只能在定義它的函數中使用,兩個變量的作用域是一樣的;兩者的區別在于,auto自動變量會隨著函數被調用和退出而存在和消失,而靜態局部變量不會,無論其所在的函數是否被調用,它都會一直存在;然而,雖然變量仍然存在,但它不能被使用。如果再次調用定義它的函數,它可以繼續使用,并且保存上次調用后留下的值。換句話說,靜態類型的內部變量是一個只能在特定函數中使用,但總是占用存儲空間的變量。
2.如果在定義靜態變量的時候初始化了函數體,那么以后程序就不會初始化了(函數中出現的靜態變量基本類型的初始化語句只會在第一次調用時執行)。但是,將初始值賦給自動變量是在調用函數時完成的,每次調用函數時再次賦予初始值相當于執行一個賦值語句。
3.靜態局部變量的初始化表達式必須是常量或常量表達式。即使局部靜態變量定義時沒有初始值,系統也會自動賦初值0(對于數值型變量)或空字符(對于字符型變量);靜態變量的初始值是0。對于自動變量auto,如果沒有賦值初始值,它的值將是一個不確定的值。
4.當一個函數被多次調用,并且需要在調用之間保留一些變量的值時,可以考慮靜態局部變量。雖然全局變量也可以達到上述目的,但是全局變量有時會引起意想不到的副作用,所以使用局部靜態變量還是合適的。
注意:局部靜態變量占用內存時間長,可讀性差,除非必要,盡量避免使用局部靜態變量。
第二,靜態全局變量
全局變量(外部變量)的描述以static開頭,形成靜態全局變量。
全局變量本身就是靜態存儲方法,靜態全局變量也是靜態存儲方法。
兩者在存儲上沒有區別。
雖然兩者的區別在于:
1.非靜態全局變量的范圍是整個源程序。當一個源程序包含多個源文件時,非靜態全局變量在所有源文件中都有效。
2.靜態全局變量限制了它的作用域,即它只在定義該變量的源文件中有效,不能在同一源程序的其他源文件中使用。
由于靜態全局變量的作用域僅限于一個源文件,并且只能由源文件中的函數共享,因此可以避免在其他源文件中引起錯誤。
從上面的分析可以看出
把局部變量改成靜態變量就改變了它的存儲,也就是改變了它的生存期。
保持當一個全局變量被改為靜態變量時,它的作用域也隨之改變,這就限制了它的使用范圍。
所以靜電在不同地方的作用是不一樣的。應該引起重視。
靜態定義了變量的使用:
一、靜態局部變量:
1.靜態類的內部變量和auto自動變量一樣是特定函數的局部變量(即沒有靜態聲明的局部變量),即變量只能在定義它的函數中使用,兩個變量的作用域是一樣的;兩者的區別在于,auto自動變量會隨著函數被調用和退出而存在和消失,而靜態局部變量不會,無論其所在的函數是否被調用,它都會一直存在;然而,雖然變量仍然存在,但它不能被使用。如果再次調用定義它的函數,它可以繼續使用,并且保存上次調用后留下的值。換句話說,靜態類型的內部變量是一個只能在特定函數中使用,但總是占用存儲空間的變量。
2.如果在定義靜態變量的時候初始化了函數體,那么以后程序就不會初始化了(函數中出現的靜態變量基本類型的初始化語句只會在第一次調用時執行)。但是,將初始值賦給自動變量是在調用函數時完成的,每次調用函數時再次賦予初始值相當于執行一個賦值語句。
3.靜態局部變量的初始化表達式必須是常量或常量表達式。即使局部靜態變量定義時沒有初始值,系統也會自動賦初值0(對于數值型變量)或空字符(對于字符型變量);靜態變量的初始值是0。對于自動變量auto,如果沒有賦值初始值,它的值將是一個不確定的值。
4.當一個函數被多次調用,并且需要在調用之間保留一些變量的值時,可以考慮靜態局部變量。雖然全局變量也可以達到上述目的,但是全局變量有時會引起意想不到的副作用,所以使用局部靜態變量還是合適的。
注意:局部靜態變量占用內存時間長,可讀性差,除非必要,盡量避免使用局部靜態變量。
第二,靜態全局變量
全局變量(外部變量)的描述以static開頭,形成靜態全局變量。
全局變量本身就是靜態存儲方法,靜態全局變量也是靜態存儲方法。
兩者在存儲上沒有區別。
雖然兩者的區別在于:
1.非靜態全局變量的范圍是整個源程序。當一個源程序包含多個源文件時,非靜態全局變量在所有源文件中都有效。
2.靜態全局變量限制了它的作用域,即它只在定義該變量的源文件中有效,不能在同一源程序的其他源文件中使用。
因為靜態全局變量的作用域僅限于一個源文件,并且只能由源文件中的函數共享,所以可以避免在其他源文件中使用。文件中出現錯誤。
把局部變量改成靜態變量就改變了它的存儲,也就是改變了它的生存期。
將全局變量更改為靜態變量會改變其范圍并限制其使用。
所以靜電在不同地方的作用是不一樣的。應該引起重視。
2021年9月計算機二級c語言考試大綱?
2021年全國計算機等級考試二級C語言程序設計考試大綱2021版
基本要求:
1.熟悉VisualC6。0集成開發環境。
2.掌握結構化編程的方法,具有良好的編程風格。
3.掌握編程中簡單的數據結構和算法,能讀懂簡單的程序。
4.在VisualC6的集成環境下。0,我能編寫簡單的C程序,具備基本的程序改錯能力。
考試內容:
一、C語言程序的結構
1.程序的組成,主要功能和其他功能。
2.頭文件、數據描述、函數的開始和結束標記以及程序中的注釋。
3.源程序的編寫格式。
4.c語言的風格。
二、數據類型及其操作
1.Cs數據類型:基本類型、構造類型、指針類型、無值類型及其定義方法。
2.C運算符的類型、運算優先級和組合。
3.不同類型數據之間的轉換和操作。
4.c表達式類型賦值表達式、算術表達式、關系表達式、邏輯表達式、條件表達式、逗號表達式和求值規則。
二級考試公共基礎知識大綱及樣題見高等教育出版社出版的《《全國計算機等級考試二級教程———公共基礎知識2013年版》》附錄。
第三,基本句
1.表達式語句,空語句,復合語句。
2.調用輸入輸出函數,正確輸入數據,正確設計輸出格式。
第四,選擇結構化編程
1.使用if語句實現選擇結構。
2.用switch語句實現多分支選擇結構。
3.選擇結構的嵌套。
五、循環結構程序設計
1.對于循環結構。
2.while和do-while循環結構。
3.繼續語句和中斷語句。
4.循環嵌套。
不及物動詞數組的定義和引用
1.一維數組和二維數組的定義和初始化以及數組元素的引用。
2.字符串和字符數組。
七、功能
1.庫函數的正確調用。
2.函數的定義方法。
3.函數的類型和返回值。
4.形式參數和真實參數,參數值的傳遞。
5.函數的正確調用、嵌套調用和遞歸調用。
6.局部變量和全局變量。
7.變量的存儲類別:自動、靜態、寄存器、外部、變量的作用域和生存期。
八、編譯預處理
1.宏定義并調用不帶參數的宏和帶參數的宏。
2."該文件包含冶金處理。
九、指針
1.地址和指針變量、地址運算符和地址運算符的概念。
2.一維和二維數組和字符串的地址,以及指向變量、數組、字符串、函數和結構的指針。
定義。通過指針引用上述類型的數據。
3.使用指針作為函數參數。
4.返回地址值的函數。
5.指針數組,指針對指針。
X.結構手段"結構熔煉和社區手段"聯合冶煉公司;"
1.用typedef解釋一個新類型。
2.結構的定義和成員的公共體類型數據和引用。
3.結構形成鏈表,建立單向鏈表,輸出、刪除、插入節點數據。
十一、位操作254
1.位運算符的含義和用法。
2.簡單的位操作。
十二。文件操作
只需要緩沖文件系統,即高級磁盤I/O系統,不需要非標準緩沖文件系統,即低級磁盤I/O系統。
1.文件類型指針。
2.打開和關閉文件fopen,fclose。
3.文件讀寫:fputc,fgetc,fputs,fgets,fread,fwrite,fprintf,fscanf函數的應用,rewind,fseek函數的應用。
考試方法:
機考,考試時長120分鐘,滿分100分。
問題類型和分數:
選擇題40分包括公共基礎知識10分,操作題60分包括填空題、改錯題和編程題。
2考試環境
VisualC6。0。