聲明和定義的關係:
聲明規定了變量的類型和名字,定義申請存儲空間。
想聲明而非定義一個變量,添加extern關鍵字,extern聲明變量並初始化時即變成定義。
定義一次,聲明可多次。可參考博客extern關鍵字
#include<iostream>
#define GET_ARRAY_LEN(arr,row,column) {column = sizeof(arr[0])/sizeof(arr[0][0]);\
row = sizeof(arr)/sizeof(arr[0]);}
using namespace std;
int arr[5];//默認初始化全爲0;
int numGlobal;//默認初始化全爲0;
//全局和靜態數組初始化爲0,局部變量和數組不初始化,輸出爲地址。
void AlgorithmGossip(int *arr){};
int main()
{
int arrTwo[5] = {1};
//當初始化時指定的元素個數小於數組,剩下的元素都被初始化爲0,即1,0,0,0,0
int numLocal;
int *point = arr;
AlgorithmGossip(arr);
cout<<numGlobal<<endl;//輸出0
cout<<numLocal<<endl;//輸出-858993460
for (int i = 1; i < 5; ++i) {
cout<<*point<<" ";
//arr++;error:數組地址,這個是常量,不能賦值。
point++;
}
return 0;
}