一,关于变量的定义
1,一个整型变量
int a;
2,一个指向指针的指针,它指向的指针是指向一个整型数的(整型指针的指针变量)
int **a;
3,一个有10 个整型数的数组(整型数组)
int a[10];
4,一个有10个指针的数组,该指针是指向一个整型数的(整型指针数组)
int *a[10];
5,一个指向有10个整型数组的指针(整型数组指针变量)
int (*a)[10];
6,一个指向函数的指针。该函数有个整型参数(整型函数指针变量)
int (*a)(int);
7,一个有10个指针的数组,该指针指向一个函数(整型函数数组指针变量)
int (*a[10])(int);
解释:a是有10个元素的数组,保存的是指针,指针指向的是函数的地址
8,int *(*(*fp1)(int))[10]
fp1:函数指针变量,
该函数指针指向一个形参为int的函数,返回值为数组指针,
该数组指针指向一个整型指针数组
9,int *(*(*arr[5])())()
arr: 函数指针数组
该数组中的指针指向一个形参为空的函数,返回值为函数指针
该函数指针指向一个形参为空的函数
10,float(*(*b())[ ])()
b: 函数,形参为空,返回值是数组指针
该数组指针指向一个形参为空,返回值为float的函数,
11,void *(*c)(char ,int(*)())
c:函数指针变量
该函数指针指向一个形参为,char类型和整型函数指针,返回值为void类型的函数
二,全局变量和局部变量的区别
1,从空间分配:全局变量分配区间是./data和bss,局部变量分配为栈空间
2,初始化: 全局变量的初始化为0,局部变量初始化为随机值
3,作用域: 全局变量作用于整个程序,释放于程序结束
局部变量作用于整个函数,释放于函数调用结束