C/C++

来源:互联网 发布:阿里云备案服务 编辑:程序博客网 时间:2024/04/29 07:11

C与C++的区别

答:C是结构化语言,重点在于算法和数据结构。
  C++是面向对象的语言。首先要考虑的是如何构造一个对象模型,让这个模型能够配合对应的问题。
  最大的区别在于,解决问题的思想方法不一样。

对C++三大特性的理解

答:C++三大特性是封装,继承和多态。
  封装可以隐藏实现细节,使得代码模块化,增加代码的可复用性和可维护性。
  继承可以扩展已存在的代码模块,封装和继承的目的都是为了代码重用,增加代码的复用性。
  多态,一个接口,多种方法。是为了实现接口重用。增加代码的可扩充性。

const与define

答:define只是用来做文本替换,他的生命周期止于编译器,存在于程序的代码段,在实际程序中只是一个常数,一个命令的参数,没有实际的存在。
  const常量存在于程序的数据段,并在堆栈分配了空间。他在程序中存在并且可以被调用及传递。
  const常量有数据类型,宏常量没有数据类型,编译器可以对const常量进行类型安全检查。

C++中const的作用

答:const用于定义常量,编译器可以对其进行数据静态类型安全检查。
  const修饰函数形式参数,防止传递引用参数时参数被改变
  const修饰函数返回至
  const修饰类的成员函数

static的作用

答:静态变量,在函数体内,函数调用过程中维持值不变
  在模块内,函数体外,静态变量可以被模块内的所有函数访问,但不能被模块外的函数访问,是一个本地的全局变量。
  静态函数只能被同一模块的其他函数调用

static变量与普通变量的区别

答:static全局变量只初始化一次,防止在其他文件单元中被引用。
  静态局部变量只初始化一次,下一次依据上一次结果值。
  静态函数在内存中只有一份,普通函数在被调用时维持一个拷贝。

sizeof与strlen的区别

答:strlen是一个函数,sizeof是关键字
  sizeof操作符的结果类型是unsigned int
  sizeof可以用类型做参数,strlen只能用char*做参数
  数组做sizeof参数不退化,传给strlen数组降级
  sizeof在编译时计算,strlen在运行时计算
  sizeof参数如果是变量名可以不加括号

内联函数与宏定义的区别

答:内联函数在编译时展开,宏定义在预编译时展开
  编译时,内联函数做代码嵌入,宏定义做文本替换
  内联函数可以完成类型检测,语句是否正确等编译功能,宏不具备
  内联函数是函数,宏不是函数
  宏定义会有参数二义性问题。

指针常量与常量指针

答:常量指针就是指向常量的指针,他所指向的地址内容是不可修改的
  指针常量就是指针的常量,它是不可修改地址的指针,但是可以对它指向的内容进行修改
  

0 0
原创粉丝点击