C++常见面试题(一)
C++和C的区别 设计思想上: C++是面向对象的语言,而C是面向过程的结构化编程语言 语法上: C++具有封装、继承和多态三种特性 C++相比C,增加了许多类型安全的功能,比如强制类型转换 C++支持范式编程,比如模板类、函数模板等 C++中指针和引用的区别 指针有自己的一块空间,而引用只是一个别名 使用sizeof计算一个指针的大小为4,而引用则是被引用对象的大小 指针可以初始化为空,而引用必须被初始化且必须是一个已有对象的引用 作为参数传递时,指针需要被解引用才可以对对象进行操作,而对引用的修改都会直接改变引用所指的对象 可以有const指针,但没有const引用 指针可以指向其他对象,但引用只能是一个对象的引用,不能被改变 如果返回动态内存分配的对象或者内存,必须使用指针,引用可能引起内存泄漏 指针和数组的区别 数组:数组用于存储多个相同类型数据的集合,地址是连续的 指针:指针相当于一个变量,存放的是内存中的地址 区别: • 赋值:同类型指针变量可以相互赋值,数组不行,只能一个一个元素的赋值或拷贝 • 存储方式:数组:数组在内存中是连续存放的,开辟一块连续的内存空间。数组是根据数组的下进行访问的,多维数组在内存中是按照一维数组存储的,只是在逻辑上是多维的。指针:指针很灵活,它可以指向任意类型的数据。指针的类型说明了它所指向地址空间的内存。 • 求sizeof