网站排版的优点,九九建筑网66kv架空线路设计视频讲座,建筑模板尺寸,样品门展厅设计图片目录
一.const 简介 1.const 修饰变量2.const 修饰指针 二.const 修饰在函数名前面三.const 修饰在函数名后面四.猜你喜欢 零基础 C/C 学习路线推荐 : C/C 学习目录 C 语言基础入门 一.const 简介
const 是 constant 的缩写#xff0c;“恒定不变”的意思。被 cons…目录
一.const 简介 1.const 修饰变量2.const 修饰指针 二.const 修饰在函数名前面三.const 修饰在函数名后面四.猜你喜欢 零基础 C/C 学习路线推荐 : C/C 学习目录 C 语言基础入门 一.const 简介
const 是 constant 的缩写“恒定不变”的意思。被 const 修饰的东西都受到强制保护可以预防意外的变动能提高程序的健壮性。所以很多 C 程序设计书籍建议“Use const whenever you need”。
1.const 修饰变量
/******************************************************************************************/
//Author:猿说编程
//Blog(个人博客地址): www.codersrc.com
//File:C语言教程 - C语言 const 修饰函数
//Time:2021/07/04 08:00
//Motto:不积跬步无以至千里不积小流无以成江海程序人生的精彩需要坚持不懈地积累
/******************************************************************************************/#include stdio.hint main() {const int a 20 ;printf(a %d\n,a);a 200 ;printf(a %d\n,a);return 0;
}/*输出Compilation Failederror: assignment of read-only variable a6 | a 200 ;| ~~^~~~~*/用 const 定义的变量的值是不允许改变的即不允许给它重新赋值即使是赋相同的值也不可以。并且 const 修饰的变量在定义的时候就给它赋初值否则报错
error: uninitialized const [-fpermissive]详细解释可以直接跳转const 修饰变量
2.const 修饰指针
/******************************************************************************************/
//Author:猿说编程
//Blog(个人博客地址): www.codersrc.com
//File:C语言教程 - C语言 const 修饰函数
//Time:2021/07/04 08:00
//Motto:不积跬步无以至千里不积小流无以成江海程序人生的精彩需要坚持不懈地积累
/******************************************************************************************///以下两者等价表示 *p 不可变。*p 表示的是指针变量 p 所指向的内存单元里面的内容此时这个内容不可变
const int *p
int const *p//此时 const 修饰的是 p所以 p 中存放的内存单元的地址不可变而内存单元中的内容可变。即 p 的指向不可变p 所指向的内存单元的内容可变
int * const p//*p 和 p 都被修饰了那么 p 中存放的内存单元的地址和内存单元中的内容都不可变
const int * const p详细解释可以直接跳转const 修饰指针
二.const 修饰在函数名前面
当 const 在函数名前面的时候修饰的是函数返回值在函数名后面表示是 C 常成员函数该函数不能修改对象内的任何成员只能发生读操作不能发生写操作。
const char * GetString(void);
const int GetInt(void);
const float GetFloat(void);
const double GetDdouble(void);如果给以“指针传递”方式的函数返回值加 const 修饰那么函数返回值即指针的内容不能被修改该返回值只能被赋给加 const 修饰的同类型指针
const char * GetString(void);//如下语句将出现编译错误
//char *str GetString();//正确的用法是
const char *str GetString();如果函数返回值采用“值传递方式”由于函数会把返回值复制到外部临时的存储单元中加 const 修饰没有任何价值。
int GetInt(void);const int GetInt(void);以上两个函数都是都是独立存在的并非同一个函数
三.const 修饰在函数名后面
当 const 在函数名前面的时候修饰的是函数返回值在函数名后面表示是 C 常成员函数该函数不能修改对象内的任何成员只能发生读操作不能发生写操作。
/******************************************************************************************/
//Author:猿说编程
//Blog(个人博客地址): www.codersrc.com
//File:C语言教程 - C语言 const 修饰函数
//Time:2021/07/04 08:00
//Motto:不积跬步无以至千里不积小流无以成江海程序人生的精彩需要坚持不懈地积累
/******************************************************************************************/class People
{public:int talk(void);int eat(void) const; // const 成员函数private:int m_age;};
int People::eat(void) const
{m_age; // 编译错误企图修改数据成员m_numtalk(); // 编译错误企图调用非const函数return m_age;
}const 对象只能访问 const 成员函数,而非 const 对象可以访问任意的成员函数,包括 const 成员函数.const 对象的成员是不可修改的,然而 const 对象通过指针维护的对象却是可以修改的.const 成员函数不可以修改对象的数据,不管对象是否具有 const 性质.它在编译时,以是否修改成员数据为依据,进行检查.然而加上 mutable 修饰符的数据成员,对于任何情况下通过任何手段都可修改,自然此时的 const 成员函数是可以修改它的
四.猜你喜欢
C 语言 数组下标越界和内存溢出区别C 语言 指针声明和定义C 语言 指针 p / p–C 语言 p/§/_(p)/_pC 语言 使用指针遍历数组C 语言 指针和数组区别C 语言 指针数组和数组指针区别C 语言 空指针 NULLC 语言 void 指针C 语言 野指针C 语言 函数值传递和址传递C 语言 函数缺省参数C 语言 函数不定长参数C 语言 函数指针C 语言 指针函数C 语言 回调函数 callbackC 语言 typedefC 语言 define 定义常量C 语言 define 防止头文件重复包含C 语言 #pragma onceC 语言 #include 与 #include “” 区别C 语言 const 修饰变量C 语言 const 修饰指针C语言 const 修饰函数
未经允许不得转载猿说编程 » C 语言 const 修饰函数返回值