C++面试必备:const与extern关键字解析

需积分: 10 1 下载量 78 浏览量 更新于2024-07-23 收藏 259KB DOCX 举报
"C++面试题集v6.1包含了关于C++编程语言的关键知识点,主要集中在变量声明与定义的区别、const关键字的用途、extern的作用以及static和const关键字的多功能性。" 在C++中,变量的声明和定义是两个不同的概念。声明变量是为了告知编译器变量的类型和名称,但并不实际分配存储空间。例如,当我们在一个头文件中声明变量时,这样做是为了让其他文件知道变量的存在。而定义变量则是分配内存并准备存储数据。一个变量可以多次声明,但只能在一个地方定义。使用`extern`关键字来声明一个变量表示它的定义在其他地方,这允许不同源文件间的变量共享。 `const`关键字在C++中扮演着重要的角色,它用于创建只读变量。这意味着一旦变量被初始化,其值就不能再被修改。这有助于提高代码的可读性和安全性,因为它清楚地表明了哪些变量不应被意外修改。`const`还可以用于函数参数,确保这些参数在函数内部不会被改变,增加代码的清晰度。此外,`const`还可以用于指针,指针本身可以是`const`(不可更改指针的指向),指针所指的内容可以是`const`(指针指向的值不可更改),或者两者都是`const`。 `extern`关键字用于告诉编译器某个变量或函数是在其他源文件中定义的。这样可以实现跨文件的变量或函数共享,使得不同源文件可以访问同一个全局变量或使用同一个函数。 `static`关键字在C++中有多种用途: 1. 在函数内部,`static`变量在函数每次调用时都保持其上一次的值,而不是像自动变量那样每次调用都会重新初始化。 2. 当应用于全局变量时,`static`使变量成为文件作用域,这意味着它只对当前源文件可见,防止了不同文件间名称冲突的问题。 3. `static`可以用于定义内部链接的函数,这样的函数只在定义它的源文件中可用,不允许外部访问。 4. 对于类的成员变量,`static`意味着所有类的对象共享同一份变量副本,而不是每个对象都有自己的一份。 5. 类的`static`成员函数没有隐含的`this`指针,因此它们不能直接访问非`static`成员,但可以访问`static`成员。 了解这些基础知识对于C++面试至关重要,因为它们涵盖了基本的编程概念和最佳实践,是评估候选人对C++理解和应用能力的重要方面。在面试中,候选人可能需要深入讨论这些主题,并展示他们如何在实际项目中运用这些知识。