const與static的區別
static
- static區域性變數 將一個變數宣告為函式的區域性變數,那麼這個區域性變數在函式執行完成之後不會被釋放,而是繼續保留在記憶體中
- static 全域性變數 表示一個變數在當前檔案的全域性內可訪問
- static 函式 表示一個函式只能在當前檔案中被訪問
- static 類成員變數 表示這個成員為全類所共有
- static 類成員函式 表示這個函式為全類所共有,而且只能訪問靜態成員變數
const
- const 常量:定義時就初始化,以後不能更改。
- const 形參:func(const int a){};該形參在函式裡不能改變
- const修飾類成員函式:該函式對成員變數只能進行只讀操作
static關鍵字的作用:
(1)函式體內static變數的作用範圍為該函式體,該變數的記憶體只被分配一次,因此其值在下次呼叫時仍維持上次的值;
(2)在模組內的static全域性變數和函式可以被模組內的函式訪問,但不能被模組外其它函式訪問;
(3)在類中的static成員變數屬於整個類所擁有,對類的所有物件只有一份拷貝;
(4)在類中的static成員函式屬於整個類所擁有,這個函式不接收this指標,因而只能訪問類的static成員變數。
const關鍵字的作用:
(1)阻止一個變數被改變
(2)宣告常量指標和指標常量
(3)const修飾形參,表明它是一個輸入引數,在函式內部不能改變其值;
(4)對於類的成員函式,若指定其為const型別,則表明其是一個常函式,不能修改類的成員變數;
(5)對於類的成員函式,有時候必須指定其返回值為const型別,以使得其返回值不為”左值”。
https://www.cnblogs.com/Jinfeng1213/p/8597446.html
static的例子如下:
#include<iostream>
using namespace std;
void f();
int main()
{
for(int i = 1;i <= 3;i++)
{
f();
}
return 0;
}
void f()
{
static int a=1;
cout<<"第"<<a-1<<"次呼叫f函式:a="<<a++<<endl;
}
相關文章
- const、define 和 static 的區別
- let與const區別
- Flutter 知識梳理 (Dart) - Dart 中 static, final, const 區別FlutterDart
- const char*, char const*, char*const的區別
- extern、 const、static的理解
- static 和extern的區別
- es6 let const與var 的區別
- Java中final與static final的區別Java
- Java中static、final、static final的區別Java
- var、const、let 的區別
- ViewState Session Static區別ViewSession
- C++ static、const和static const變數 以及它們的初始化C++變數
- const,static,extern簡介
- const char*, char const*, char*const 有何區別?
- let const var 區別
- var let const區別
- let,const,var區別
- var、let和const的區別
- var和let/const的區別
- const和readonly的區別
- C++中的static成員、static const成員和const成員的初始化C++
- final與static關鍵字的區別?(skycto JEEditor)
- PHP中new static()與new self()的區別異同分析PHP
- 簡單易懂 —— this、self、static 的區別
- self::class和static::class的區別
- iOS之const,static,extern使用iOS
- 巨集,static、const 、extern簡介
- inline、const、mutable、this、staticinline
- JavaScript中let、const、var 的區別JavaScript
- PHP new self()和new static()的區別PHP
- JAVA 裡static 和volatile的區別Java
- C#中 Const 、readonly、static 之間的差別和關係C#
- C語言 關鍵字const的作用 const int* 和int *const 的區別C語言
- C++中static_cast, dynamic_cast, const_cast用法/使用情況及區別解析C++AST
- C/C++中Static和Const的作用C++
- iOS中的static const extern關鍵字iOS
- var與ES6中const、let宣告的變數的區別變數
- c# const_static readonlyC#