声明和定义的关系:
声明规定了变量的类型和名字,定义申请存储空间。
想声明而非定义一个变量,添加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;
}