6 看看const和指標的那些事兒
const在int*左邊
const在int*右邊
const在int*兩邊------>請看**注釋
(1)**
1 #include 2view code3int
main()
4
7 說明const與#define的特點與區別
(1)分別看看const和#define
1#define:#define a 10
2int
b;3 b = 2*a;
a:編譯器最開始的時候就會將#define a以後所有的**中的a全部替換為10,然後進行編譯
b:生命週期止於編譯器,存在於程式的**段,實際上就是乙個常數
c:沒有資料型別
const:
a:資料段,並分配了空間
b:有資料型別
c:可以進行安全性檢查
8 c++中const有什麼作用(至少三個)
(1)const定義的常量,編譯器可以對其進行資料型別的安全檢查
(2)const修飾函式形式引數 ,輸入引數作為使用者自定義型別和抽象資料型別是,將值傳遞改為const &傳遞可以提高效率
1a:第乙個函式會產生臨時物件用於複製引數a,臨時物件的構造 析構等都將消耗事件void
func(a a)
2void func(a const &a)
b:引用傳遞不需要產生臨時物件,但是只用a會改變a,所以加上const修飾
(3)const修飾函式的返回值:比如指標傳遞的函式返回值加const,返回就不能被直接修改,而且返回值只能被賦值給加const修改的同型別指標
1(4)const修飾類的成員函式,任何不修改資料成員的函式都應該加上const修飾(這樣如果不小心修改了成員會報錯提醒我們)const
char *getchar(void
){}2
char *ch = getchar();//
error
3const
char *ch=getchar();//
correct
9 static的作用(至少兩個)
(1) 函式體內,被申明為靜態的變數,函式被呼叫的過程中都不會改變
(2)在整個模組內(函式體外),被申明的靜態變數可以被模組內所有的函式訪問,但是不能被模組外的訪問,本地全域性變數
(3)模組內,靜態函式只能被這一模組內的其他函式呼叫。也就是這個函式被限制在宣告它的模組的本地範圍內使用(當前檔案)
10static全域性變數與普通的全域性變數區別(c++)
(1)儲存方式都一樣------>靜態儲存方式
(2)static全域性:限制了作用域,只能是定義變數的當前檔案有效(如果源程式有多個檔案)
普通全域性:在各個原檔案都有效
(3)static函式與普通函式作用域不同:
總之:(1) static全域性與普通全域性:
static全域性只初始化一次,防止其他檔案使用
(2)static區域性和不同區域性:
(3)static函式與普通函式:
static函式在記憶體中只有乙份,普通函式每次呼叫維持乙份複製品
11 c++類的靜態成員
1 #include 2(1)首先類中的靜態成員或者方法不屬於類的例項using
namespace
std;
3class
widget
410 ~widget()
1114
static
intnum()
1518
private:19
static
intcount;
20};
21int widget::count = 0;22
23int
main()
2432
widget z;
33 cout << "
the num is
"<< widget::num() <
34return0;
35 }
(2)count的值就是類widget例項的個數
(3)結果
25行中兩個例項下x,y然後29行3個例項,但是出了**塊(也就是括號)就沒有了,最後乙個例項所以3個。
好了,今天的這部分任務結束(嗚嗚嗚,今天電腦好卡!!!!!!),小夥伴加油
外部變數和靜態變數
外部變數是在函式外部定義的全域性變數,它的作用域是從變數的定義處開始,到本程式檔案的結尾。在此作用域內,全域性變數可為各個函式所引用。編譯時將外部變數分配在靜態儲存區。有時需要在其他檔案中使用extern來宣告外部變數,以擴充套件外部變數的作用域。也可用static宣告外部變數,使該變數不能被其他檔...
靜態變數和靜態成員函式
c 中的靜態成員變數和靜態成員函式。1 類靜態資料成員在編譯時建立並初始化 在該類的任何物件建立之前就存在,不屬於任何物件,而非靜態類成員變數則是屬於物件所有的。類靜態資料成員只有乙個拷貝,為所有此類的物件所共享。特別需要注意的一點是 靜態資料成員不能在類中初始化 對於常量靜態類變數有待考證,好像可...
靜態變數和靜態函式
靜態變數 靜態變數使用 static 修飾符進行宣告 在所屬類被裝載時建立 通過類進行訪問 所屬類的所有例項的同一靜態變數都是同乙個值 非靜態變數 不帶有 static 修飾符宣告的變數稱做非靜態變數 在類被例項化時建立 通過物件進行訪問 同乙個類的不同例項的同一非靜態變數可以是不同的值 在c 中,...