小公司做网站用哪种服务器,wordpress 正在发送请求,网站域名建设怎么填写,陕西交通建设养护工程有限公司网站面试题目#xff1a;1、题 int i10; const int*p i; int *const* p i; const在不同位置有什么不 同 2、const 修饰类成员变量是有什么特殊要求 3、const 修饰类成员函数会发什么 4、const 对象有什么意义 目录 前言 一、const的意义 二、const使用规则 1.初始化… 面试题目1、题 int i10; const int*p i; int *const* p i; const在不同位置有什么不 同 2、const 修饰类成员变量是有什么特殊要求 3、const 修饰类成员函数会发什么 4、const 对象有什么意义 目录 前言 一、const的意义 二、const使用规则 1.初始化 2.const 修饰指针 1const靠近谁谁就是常量 2或者 左边的是底层const靠近右边的是顶层const 三、const使用限制 四、const类相关 1、定义数据成员 2、定义常量函数 3、定义const 对象 前言
对于任何语言设定限定符为了是程序设计者不破坏其语言设定的基础规则使程序能够安全运行和稳定运行。本文对C 中const限定符做详细的解析。 一、const的意义
有时候我们希望我们定义的变量希望它的值不能被修改只能被使用另一方面也随时保证警惕防止程序或其他设计者一不小心改变这个值为了满足这一要求就通过const关键字加以限定
二、const使用规则
1.初始化
const 修饰的变量在初始化就需要赋初值 const int i 10; const char* p big bird; const 初始化时允许任意表达式作为初始值 const int r1 40; const int r2 r1*50; const引用的时候允许类型转换 const double i 3.14; const int r1 i; 其实实际程序做了隐形操作建立了一个临时变量真正的执行过程如下 const double i 3.14; const int r1 i; //隐形操作 const int temp i; //隐形操作 const int r1 temp; 2.const 修饰指针
指针是对象而不是引用因此它能像其他对象类型一样允许把指针本身定义为常量。常量指针必须被初始化 int errorNum 0; int *const currErr errorNum; //就是currErr不能指向其他地址顶层const const int *p errorNum; //currErr可以指向其他地址底层const可以改变 //currErr所指向的内容 const double pi 3.1415926; const double *const pip pi; //双保险地址指向和内容都不能修改 const 修饰指针时 如果本身是常量这是顶层const,如果指针可以改变就是底层const
如果以上不好理解那么可以通过取巧的记忆方法
1const靠近谁谁就是常量
const靠近类型值就不改变是底层constconst靠近 * 表明指针不能改变底层const如下
const int *p errorNum;
int *const currErr errorNum;
2或者 左边的是底层const靠近右边的是顶层const 三、const使用限制 int i0; int *const p i; int* p1 p; //错误p是常量类型无法赋值 const int a 10; int r a; //错误a是常量不能被引用成普通变量 四、const类相关
1、定义数据成员
class A
{private const int i;public A(int a);
}class A:A(int a):i(a)
{
}
类的数据成员为常量那么就要在构造函数中初始化列表中初始化它不能在构造函数中初始化 2、定义常量函数
class A
{private string name;public A(string name);public string getName()const;public const string getNameEx();
}A:A(string n):name(n)
{
}//表明该函数中不能修改成员变量
string A:getName()const
{return name;
}//表明返回值是常量
const string A::getNameEx()
{return name;
}如果const修饰返回值那么返回值是常量如果修饰的在函数声明后面那么说明在该函数中不能修改成员变脸的值
3、定义const 对象
在 C 中const 也可以用来修饰对象称为 常对象 。 一旦将对象定义为常对象之后就只能调用类的 const 成员包括 const 成员变量和 const 成员函数了。 const A* pA new A(xiaoming); pA-getName(); //正确getName是常量成员函数 pA-getNameEx(); //错误getNameEx不是常量成员函数