您的位置:首页 > 编程语言 > C语言/C++

第一节 C语言编程中的几个基本概念

2013-11-24 21:33 274 查看
第一节 C语言编程中的几个基本概念

1.1
#include<
>与#include" "

1. #include< >和#include" "有什么区别?

这个题目考查大家的基础能力,#include< >用来包含开发环境提供的库,

#include" "用来包含.c/.cpp文件所在目录下的头文件。注意:有些开发环境可以在当前目录下面自动收索(包含子目录),有些开发环境需要指定明确的文件路径名。
1.2
switch()

1. switch(c) 语句中 c 可以是 int, long, char, float, unsigned int 类型?

其实这个题目很基础,c应该是整型或者可以隐式转换为整型的数据,很明显不能是实型(float、double)。所以这个命题是错误的。
1.3
const

1. const有什么用途?

虽然const很常用,但是我相信有很多人仍然答不上来。

(1) 欲阻止一个变量被改变,可以使用const 关键字。在定义该 const 变量时,通常需要对它进行初 始化,因为以后就没有机会再去改变它了;

(2) 对指针来说,可以指定指针本身为 const,也可以指定指针所指的数据为 const,或二者同时指定为 const;

(3) 在一个函数声明中,const 可以修饰形参,表明它是一个输入参数,在函数内部不能改变其值;

(4) 对于类的成员函数,若指定其为 const 类型,则表明其是一个常函数,不能修改类的成员变量;

(5) 对于类的成员函数,有时候必须指定其返回值为 const 类型,以使得其返回值不为“左值”。
1.4
#ifndef/#define/#endif

1. 头文件中的 #ifndef/#define/#endif 干什么用?

其实#ifndef、#define、#endif这些在u-boot、linux内核文件中经常见到,在这么大型的程序中大量使用,可见它的作用不可小觑。

这些条件预编译多用于对代码的编译控制,增加代码的可裁剪性,通过宏定义可以轻松的对代码进行裁剪。

#ifndef/#define/#endif最主要的作用是防止头文件被重复定义。
1.5
全局变量和局部变量

1. 全局变量和局部变量在内存中是否有区别?如果有,是什么区别?

全局变量储存在静态数据库,局部变量在堆栈。 其实,由于计算机没有通用数据寄存器,则函数的参数、局部变量和返回值只能保存在堆栈中。提示:局部变量太大可能导致栈溢出,所以建议把较大数组放在main函数外,防止产生栈溢出。

思考:如程序清单1. 1所示。会出现怎样的情况?

程序清单1. 1 大数组放在main函数中导致堆栈溢出

int main(int argc, char *argv[])

{

int iArray[1024 * 1024];

return 0;

}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: