函数
1. 如何查看函数在内存中的地址?
打印该函数名的值就可以了,函数名是一个const的函数指针;
2. 如何给一个函数指针赋值?
下面这个例子,函数指针的赋值和调用都有了:
3. 你是否会定义可变入参函数?
关于可变入参数函数的定义在
http://hi.baidu.com/redfoxzhq/blog/item/93ffca82c2488f94f703a653.html中很详细。
4. 你是否可以区分函数的实参和形参?
5. 如何定义函数名,来表达函数的用途?
6. 你是否使用const来修饰函数入参和返回值,以表达特定的含义?
Const修饰一个函数的参数,表示在此函数过程中,该参数的值不会变化;
Const修饰一个函数的返回值:
(1) 返回值为内部类型,这是没有意义的:它是一个值,不是一个变量,所以编译器不会让它成为一个左值;
(2) 返回值是一个用户定义的类型的时候,这时候表示函数返回的值既不能直接赋值,也不能修改。
7. 递归如何使用?
变量
1. 全局变量,局部变量,常量分别保存在内存中的什么地方?
初始化的全局变量、静态变量保存在数据段,未经初始化的全局变量和未初始化的静态变量保存在BSS段,局部变量保存在栈,常量:字符串常量保存在文本段中;const修饰的全局变量保存在文本段中;const修饰的局部变量保存在堆栈段中。
2. 对于不同类型的变量,你是否知道他们的作用域?
全局变量,作用于全部的程序;局部变量,作用于本层函数;
全部静态变量,作用于本文件(其它文件不可见,就是static的隐藏)
局部静态变量,作用于本层函数,但是在本层函数结束后,生命期一直存在。
3. 全局变量和局部变量是否可以重名?你是否在这样做?
可以重名。能,局部会屏蔽全局。要用全局变量,需要使用"::" ;局部变量可以与全局变量同名,在函数内引用这个变量时,会用到同名的局部变量,而不会用到全局变量。没有这样做。
4. 局部变量在函数退出后是否有效,为什么?
局部静态变量退出后有效,因为局部静态变量存储在数据段,生命周期为整个函数;
局部非静态变量在函数退出后无效,因为局部非静态变量存储在堆栈段,函数结束后,会被系统释放。
5. 全局变量为什么不允许定义在头文件中?有何危害?
当多个文件都引用同一个定义了全局变量的头文件时,会出现变量重复定义的情况。
原文链接:https://blog.csdn.net/randyjiawenjie/java/article/details/6359204