在c語言中static的作用如下
第一、在修飾變數的時候,static修飾的靜態區域性變數只執行一次,而且延長了區域性變數的生命週期,直到程式執行結束以後才釋放。
第二、static修飾全域性變數的時候,這個全域性變數只能在本檔案中訪問,不能在其它檔案中訪問,即便是extern外部宣告也不可以。
第三、static修飾乙個函式,則這個函式的只能在本檔案中呼叫,不能被其他檔案呼叫。static修飾的區域性變數存放在全域性資料區的靜態變數區。初始化的時候自動初始化為0;
(1)不想被釋放的時候,可以使用static修飾。比如修飾函式中存放在棧空間的陣列。如果不想讓這個陣列在函式呼叫結束釋放可以使用static修飾
(2)考慮到資料安全性(當程想要使用全域性變數的時候應該先考慮使用static)
在c++中static關鍵字除了具有c中的作用還有在類中的使用
在類中,static可以用來修飾靜態資料成員和靜態成員方法
靜態資料成員
(1)靜態資料成員可以實現多個物件之間的資料共享,它是類的所有物件的共享成員,它在記憶體中只佔乙份空間,如果改變它的值,則各物件中這個資料成員的值都被改變。
(2)靜態資料成員是在程式開始執行時被分配空間,到程式結束之後才釋放,只要類中指定了靜態資料成員,即使不定義物件,也會為靜態資料成員分配空間。
(3)靜態資料成員可以被初始化,但是只能在類體外進行初始化,若為對靜態資料成員賦初值,則編譯器會自動為其初始化為0
(4)靜態資料成員既可以通過物件名引用,也可以通過類名引用。
靜態成員函式
(1)靜態成員函式和靜態資料成員一樣,他們都屬於類的靜態成員,而不是物件成員。
(2)非靜態成員函式有this指標,而靜態成員函式沒有this指標。
(3)靜態成員函式主要用來方位靜態資料成員而不能訪問非靜態成員。
c語言中的static和c 中的static比較
c語言中 static如果是修飾的全域性變數表示,該變數不能被其他檔案使用,函式也是一樣.如果修飾區域性變數,那麼,該變數存放在靜態區,只能被初始化一次,生命週期隨之檔案的結束而結束.c 中 static修飾的變數,只能在類外初始化,而且,必須初始化,可以由類直接訪問,可以在同族類中實現資料共享,在...
在C語言中的用法
1.模運算,即求餘數。表示式 a b 就是計算 a 除以 b 得出的餘數。例如 8 6 的結果是 22.轉義符,比如在 scanf 和 printf 中的輸入引數常出現帶有 的表示引數型別的變數,它的作用是將輸出的資料轉換為指定的格式輸出。格式說明總是由 字元開始的。格式字元有d,o,x,u,c,s...
C 中的Peek函式在C語言中實現
我朋友總是跟我說,c 是c的閹割版,我不反對,也不贊同。最近專案中,遇到乙個問題,就是如何在主程式執行的同時檢測串列埠的輸入,比如輸入 q 退出函式。同事推薦用c 的peek函式,可是我從進入工作以來,在linux專案中全部使用的是c,唯一知道去的輸入的就是getchar 了.該呼叫形式為cin.p...