1、局部变量能否和全局变量重名?
答:可以
2、如何引用一个已经定义过的全局变量?
答:引用头文件,或者使用extern
3、全局变量可不可以定义在可被多个.C 文件包含的头文件中? 为什么?
答:可以
4、请写出下列代码的输出内容
#include <stdio.h>
int main(void)
{
int a,b,c.d;
a=10:
b=a++;
C=++a;
d=10*a++:
printf("b, c, d: %d, %d, %d", b, c, d) :
return 0;
}
b=10, c=12, d=120
5、static 全局变量与普通的全局变量有什么区别? static 局部变量和普通局部变量有什么区别? static 函数与普通涵数有什么区别?
答:
static局部变量:
初始值:若没有初始化,则变量会默认初始化为0。
生存周期:从程序开始到程序结束。
普通局部变量:
初始值:若没有初始化,则变量中存储的是随机值。
生存周期:从函数被调用,到函数退出。
全局变量:
作用域:在整个工程中,程序中的任何一个函数都能访问到全局变量,其他.c文件若想要访问,需要通过extern关键字引用。
Static全局变量:
作用域:在当前.c文件中,同一工程下的其他.c文件无法引用(extern)访问该全局变量.
Static函数:
普通函数:
6、程序的局部变量存在于(内存的哪个区域]中,全局变量存在于_栈区中,动态申请数据存在于_堆区
中
7、设有以下说明和定义:
typedef union
long i;
int k[5):
char c
]DATE:
struct data
1
int cat:
DATE cow:
double dog;
]too:
DATE max;
则语句 printf(-%d",sizeof(struct data)+sizeof(max));的执行结果是:52
8、队列和技有什么区别?
9写出下列代码的输出内容
#include <stdio.h>
int inc(int a)
retum(++a);}
int multi(int*aint*b,int*c)
retum(*c=*a**b):1typedef int(FUNC1(int in):
typedef int(FUNC2) (int*.int*,int*):
void show(FUNC2 fun,int argl, int*arg2)
FUNC1 p=&inc:
int temp =p(arg1);