#include <stdio.h>
int i=0;
void f(){
i++;
};
int main()
{
f();
printf("%d\n",i);
return 0;
}
上面的程式碼中,程式流程的執行在全域變數中到呼叫函示main,i是在哪時候被執行的呢,程式呼叫main開始執行,其實在編譯時就初始化好了,也就是i在呼叫main函示之前就初始化好了,我們有辦法在main函示之前初始化f()這樣會編譯失敗,我們不能用函示呼叫去使用全域變數,所以全域變數跟區域變數是相當不同
#include <stdio.h>
int count(void){
int k=0;
k++;
return k;
}
int main(){
for(int i=1;i<=5;i++){
printf("%d\n", count());
}
return 0;
}
上面的程式碼中,我們在程式for迴圈裡面執行五次每次都呼叫一個count(),count()的參數void也就表示函示沒有參數,每次呼叫時都會產生一個區域變數k,把k假設成0,k++,k回傳0,每次呼叫都是獨立的一次
vector 常用功能以下為 std::vector 內常用的成員函式push_back:把元素加到尾巴,必要時會進行記憶體配置pop_back:移除尾巴的元素insert:插入元素erase:移除某個位置元素, 也可以移除某一段範圍的元素clear:清空容器裡所有元素size:回傳目前長度empty:回傳是否為空[i]:隨機存取索引值為i的元素,跟傳統陣列一樣索引值從 0 開始at(i):隨機存取索引值為i的元素,跟上面 operator[] 差異是 at(i) 會作邊界檢查,存取越界會拋出一個例外reserve():預先配置大小
#include <vector>
using namespace std;
int main() {
vector<int> v;
return 0;
}
上面的程式碼是將vector初始化,這樣是宣告一個int整數類型的vector,裡面沒有任何元素(空),size為0表示vector容器中沒有任何元素,capacity也是0