创作者~周榜126﹣总榜960⇿全网访问量30w+ 本文由 謓泽 原创 CSDN首发如需转载还请通知⚠ 个人主页-謓泽的博客_CSDN博客 欢迎各位→点赞 + 收藏⭐️ + 留言 系列专栏-【C语言...那么举个例子吧(生活当中的一些依据)有些数据是可变的比如我们的年龄、工资等...那么有些数据是不能变的,你的亲生父母、血型等等...那么如果我们要用C语言描述的话就有这两个知识点常量 const 和变量了...拓展知识点⇢原因是在不同的编译器下对于C语言的支持标准都是不一样的。有的是基于支持标准C语言并且是可以在特定的平台下做扩展的。所以我们需要尽可能地保证使用标准C语言在这样子跨平台就显现出来它的好处了。...[const]修饰数组⇢在C语言中 const 还可以修饰数组,示例代码如下 const int Array[] = {1,2,3,4,5,6,7,8,9,10}; int const Array[]...注-在C语言用 const 修饰指针注意以下两点如下。 ⒈用来限定指向空间的值是不可修改的。 ⒉限定指针式不可修改的。
const是C语言中最坑爹的关键字,典型挂羊头卖狗肉,const本意是常量,但是C语言const只能用来定义只读变量。...拓展: const在C语言中的作用,基本都是用来修饰指针的,而且都是前置修饰: const int *p = &a; // 前置修饰 int *const p = &a; // 后置修饰 前置修饰时,我们可以通过指针
const修饰指针的4种形式 const关键字,在C语言中用来修饰变量,表示这个变量是常量。 const修饰指针有4种形式,区分清楚这4种即可全部理解const和指针。...第一种:const int *p; 第二种:int const *p; 第三种:int * const p; 第四种:const int * const p; // 第一种 const int...一个const关键字只能修饰一个变量,所以弄清楚这4个表达式的关键就是搞清楚const放在某个位置是修饰谁的 const修饰的变量真的不能改吗?...const修饰的变量到底能不能真的被修改,取决于具体的环境,C语言本身并没有完全严格一致的要求。...所以在C语言中使用const,就好象是 一种道德约束而非法律约束 所以大家使用const时更多是传递一种信息,就是告诉编译器、也告诉读程序的人,这个变量是不应该也不必被修改的。
学习了多年的C语言,你对const关键字的使用全都掌握了吗?在编程实践中你对const的使用是否有困惑呢?今天就给大家一起来探讨总结,期望能够大家解惑并提供参考。...C语言中const关键字是constant的缩写,通常翻译为常量、常数等,有些朋友一看到const关键字马上就想到了常量。事实上在C语言中const功能很强大,它可以修饰变量、数组、指针、函数参数等。...1、 修饰变量:C语言中采用const修饰变量,功能是对变量声明为只读特性,并保护变量值以防被修改。...2、 修饰数组C语言中const还可以修饰数组,举例如下:const int array[5] = {1,2,3,4,5};array[0] = array[0]+1; //错误数组元素与变量类似,具有只读属性...3、 修饰指针C语言中const修饰指针要特别注意,共有两种形式,一种是用来限定指向空间的值不能修改;另一种是限定指针不可更改。
【C++】const关键字 0x1 常量 C++定义常量有两种方式 #define 宏常量:#define 常量名 常量值 通常在文件上方定义,表示一个常量 宏常量不可以修改 // 宏常量 #define...MAX 999 int main() { return 0; } const修饰的变量: const 数据类型 常量名 = 常量值 通常在变量定义前加关键字const,修饰该变量为常量,不可修改...0x5 const修饰成员函数 0x51 常函数 成员函数后加const后我们称为这个函数为常函数 常函数内不可以修改成员属性 成员属性声明时加关键字mutable后,在常函数中依然可以修改 // /...Person * const this;指针的指向,以及指针指向的值都不可以修改 */ this->m_B = 100; // 正确,因为加上了mutable关键字...{ // m_A = 100; // 错误,函数加上了const,属性不可以修改 this->m_B = 100; // 正确,因为加上了mutable关键字
目录 一、前言 二、const 关键字 1、const 关键字总体阐述 2、const 修饰变量 3、const 修饰数组 4、const 修饰指针 5、const 修饰函数 三、总结 一、前言 大家好...,欢迎来到C语言深度解析专栏—C语言关键字详解第四篇,在本篇中我们将会介绍C语言当中的另一个重要的关键字 const ,此关键字在面试中经常被问到,希望大家能够对它有一个全面的了解 二、const...关键字 1、const 关键字总体阐述 const 是 constant 的缩写,是恒定不变的意思,也翻译为常量、常数等。...const 推出的初始目的,正是为了取代预编译指令,消除它的缺点,同时继承它的优点(define 不是关键字)。...说明我们将来很有可能 会通过a的地址来访问a,所以为了避免后面造成非法访问或者访问数据丢失,我们用static来修饰它,延长它的生命周期,使a变量在整个程序运行期间都有效(static的具体用法及细节在我关键字详解二中有讲
一、const 常量内存分配时机 在上一篇博客中 , 讲到了获取 const 常量的地址 , 代码如下 : // 定义常量 // 该常量定义在了 符号表 中 // 符号表 不在内存四区中...分配一个 4 字节的空间 // 将 常量 a 的值 10 存储进去 p = (int *)&a; 在所有的编程语言中 , 常量 都具有如下特点 : 定义时分配内存 , 运行期间保持不变...; const 常量 通常指的是在程序运行期间其值不会改变的变量 , 常量在定义后会被分配内存 , 这个过程一般发生在编译器的编译阶段 ; C++ 程序都是先进行编译 , 然后再执行 , 编译时分配内存意味着在程序运行之前...不是在运行期间分配内存的 ) 二、使用如下代码验证 const 常量内存分配时机 ---- 使用如下代码验证 : // 包含 C++ 头文件 //#include "iostream" // 使用...三、分析验证结果 - const 常量在编译阶段分配内存 在上述代码中 , 先定义了变量 a , 再定义了常量 b , 最后定义了变量 c ; 变量 a 和 变量 c 肯定是在编译器编译时分配内存的 ,
一、C 语言 const 关键字简介 - 左数右指原则 【C 语言】const 关键字用法 ( 常量指针 - const 在 * 左边 - 修饰数据类型 - 内存不变 | 指针常量 - const 在...f = (int*)malloc(10); int const* const g = (int*)malloc(10); return 0; } 二、C 语言 const 关键字原理分析...---- 1、C 语言中常量的原理和缺陷 C 语言中的 const 关键字 并不是 真正的 " 常量 " , 是一个 " 冒牌货 " ; C 语言中的 const 关键字定义的常量 , 其本质是在 内存...出现上述问题 , 是因为 C 语言 中 , 会为 const 常量 单独分配内存 , 导致 用户可以 通过取地址符 & 获取该内存的地址指针 , 通过该指针可以修改内存中的数据 ; 三、C++ 语言 const...关键字 - 符号表存储常量 ---- 1、C++ 语言中常量原理 C++ 语言中 使用 const 关键字 定义的常量 , 是真正的 " 常量 " ; C++ 编译器 对 const 关键字 修饰 的常量
const和指针 区别方法: 如果const位于*的左侧,则const就是用来修饰指针所指向的变量,即指针指向为常量; 如果const位于*的右侧,const就是修饰指针本身,即指针本身是常量。...int p; const int *p; int const* p; int * const p; const int * const p; int const * const p; 验证代码...int *p=&x; cout<<"p="<<p<<" *p="<<*p<<endl; // *p=20;//改变指针指向的变量,出错:error <em>C</em>2166: l-value specifies...<<"p2="<<p2<<" *p2="<<*p2<<endl; // p2=&y;//不能修改,常指针的指向 error <em>C</em>2166: l-value specifies <em>const</em> object...//总结: //<em>const</em>靠近数据类型就是修把该类型的变量变成常量, //<em>const</em>靠近指针就是修饰把这个指针变成常指针 return 0; } 参考 <em>C</em>++ <em>const</em>与指针的结合
1.const规定了一个变量在它初始化值之后,值不能再改变,也就是只读。 来看个例子: ?...在这个测试程序里,我试图在初始化变量c的值之后再修改c的值,编译直接报错,告诉我c已经是一个只读变量了,不可以改值。...3.static在函数外的时候,表明这个变量的作用域只在该.c文件里,不能作用于整个工程。
1.定义常量 const int MAX_VAL = 23; const double Pi = 3.14; 2.定义常量指针 不可通过常量指针修改其指向的内容 int n,m; const int *...p = &n; *p = 5; //编译错误 n = 4; //正确 p = &m; //正确,可以改变常量指针指向的对象 不能把常量指针赋值给非常量指针,反过来可以 const int * p1; int...p2;//正确 p2 = p1;//错误 p2 = (int *)p1;//正确,通过强制类型转换 函数参数为常量指针时,可避免函数内部不小心改变参数指针所指地方的内容 void MyPrintf(const...char *p) { strcpy(p,"this");//编译错误 printf("%s",p);//正确 } //strcpy()第一个参数类型是char* ,相当于把 const char...3.定义常引用 不能通过常引用修改其引用的变量 int n; const int & r = n; r = 5;//编译错误 n = 4;//正确
const关键字 被const修饰的变量是不能改变的 const修饰变量时,必须在声明变量的同时给出初始化(类中的const成员变量不一样) 顶层const与底层const 顶层const 定义为变量本身是一个常量...,因此对一切的内置类型常量而言,所有的const都是顶层const 对指针来说,常量指针是顶层const,对于引用则没有顶层const的概念。...b = &aa; //正确,底层const指针可以指针的指向 int * const c = &a; //顶层const指针 *c = 20; //正确,顶层const指针可以修改指针指向的值...c = &b; //错误,顶层const指针不能修改指针的指向 b = c; //底层const指针可以指向顶层const指针(顶层const可以赋值给底层const) c = b; //底层...const指针不可以赋值给顶层const指针 const int& e = a; //引用的底层const e = 1000; //错误,引用的底层const不能修改值 const int*
(附)C语言关键字表 关键字 说明 auto 声明自动变量 break 跳出当前循环 case 开关语句分支 char 声明字符型变量或函数返回值类型 const 声明只读变量 continue...声明共用体类型 void 声明函数无返回值或无参数,声明无类型指针 volatile 说明变量在程序执行中可被隐含地改变 while 循环语句的循环条件 _Packed 指定结构、联合和枚举类型的对齐方式 类型关键字...char double enum float int long short signed struct union unsigned void 控制语句关键字 break case continue...default do else for goto if return switch while 存储类关键字 auto extern register static volatile 其他关键字 const
✨作者:@平凡的人1 ✨专栏:《C语言从0到1》 ✨一句话:凡是过往,皆为序章 ✨说明: 过去无可挽回, 未来可以改 ---- 文章目录 了解关键字分类 关键字及其说明 理解变量、定义与声明...修饰变量 结语 了解关键字分类 C语言一共多少个关键字呢?...一般的书上,都是32个(包括本书),但是这个都是 C90(C89) 的标准。其实 C99 后又新增了5个关键字。...不过,目前主流的编译器,对 C99 支持的并不好,我们后面默认情况,使用 C90 ,即认为32个 关键字及其说明 auto 声明自动变量 short 声明短整型变量或函数 int...char 声明字符型变量或函数 struct 声明结构体变量或函数 union 声明共用数据类型 enum 声明枚举类型 typedef 用以给数据类型取别名 const
一、const 普通用法 ---- const 关键字 在 C 和 C++ 中的表现不同 , 本篇博客主要介绍 C 语言中的 const 用法 ; const 的用法 : 下面的 2 个写法作用相同...| 被指向的内存不能被修改 ) ---- 下面的 c 是 指向 常量字符 的指针 , const char 表示 常量字符 , const char * 表示 指向 常量字符 的指针 ; 该指针 指向的...内存空间 不能被修改 , 指针可以被修改 ; // 指向 常量字符 的指针 const char *c; 上述代码 指针指向的 内存 是常量 ; 常量指针 三、指针常量 ( 指针不能被修改 ) --...都不能被修改 ; const char * const c; 四、const 在 * 左右的意义 ---- 普通的数据类型 , const 在数据类型左右作用相同 ; 指针数据类型 , const...*c , const 修饰的是 char , char 数据不能被修改 , 这是 常量指针 , 指向常量的指针 ; const 修饰的是右边的内容 , 右边是 变量 , 相当于 const 在 * 右边
关键字的分类 C语言一共多少个关键字呢?一般的书上,都是32个,但是这个都C90(C89) 的标准。其实 C99 后又新增了5个关键字。...不过,目前主流的编译器,对 C99 支持的并不好,默认使用 C90 ,即,认为32个。...struct 声明结构体变量或函数 union 声明供应数据类型 enum 声明枚举类型 typedef 用以给数据类型取别名 const 声明只读变量 unsigned 声明无符号类型变量或函数 signed...因为不需要从内存里读取数据了 其实该关键字,不用管,因为现在的编译器,已经很智能了,能够进行比人更好的代码优化 三、最名不符实的关键字 - static 作用:修饰变量和函数 注: 全局变量,是可以跨文件...有符号整数 vs 无符号整数 signed : 第一位为符号位 unsigned :无符号位 代码演示: char a = 20; char b = -10; unsigned char c
前言 在《const关键字到底该怎么用》一文中介绍了C语言中的const关键字,本文说说C++中的const关键字,它的大部分特点和C语言中的类似,所以本文主要针对不同之处。...修饰普通变量--只读 在C语言,虽然表面是不允许被修改,但是看下面的代码: #include int main(void) { const int a = 10; int...*p = &a; *p = 11; printf("a=%d\n",a); return 0; } 它的输出结果是 a=11 所以C语言里,表面上它是只读的,然而你违规操作仍然能改变...与C语言中const关键字不同的是,C++中使用const关键字定义的b变量的值在被改变时会被检测。...总结 关于const关键字在C和C++中的区别,想必到这里你已经清楚了。const关键字通常能借助编译器帮助我们提前发现一些不易察觉的问题。
对于刚毕业的应届生来说面试中经常被问到const关键字的用法,小编在这里为大家总结如下: 修饰常量 用const修饰的变量某种意义上就是常量,编译器会对它进行必要的操作比宏定义多了类型修饰符。...修饰指针 (1)const int *p; p指针const int的指针,不能用赋值语句对*p赋值,但是可以对p赋值。 (2)int* const p=&j; p是指向int的const指针。...p是const数据,所以其本身不可改变,而*p可以被赋值。 (3)const int * const p=&i; p是一个const指针,其指向const数据i。p、*p都不能再被赋值。...放在参数前修饰参数表示该参数必须保持其常量性,不能在函数体内被修改; (2)类成员函数 放在类成员函数尾部,表示其在函数内并不修改对象的属性,只是读取等操作非更易型操作 修饰类对象 当类的对象被声明为const...类型后,它只能调用用const修改的成员函数。
一、const 修饰普通类型的变量 const int a = 7; int b = a; // 正确 a = 8; // 错误,不能改变 a 被定义为一个常量,并且可以将 a 赋值给...二、const 修饰指针变量 1. const 修饰指针指向的内容,则内容为不可变量 const int *p = 8; 指针指向的内容 8 不可改变。...简称左定值,因为 const 位于 * 号的左边 2. const 修饰指针,则指针为不可变量 int a = 8; int* const p = &a; *p = 9; // 正确 int b =...因为 const 位于 * 号的右边 3. const 修饰指针和指针指向的内容,则指针和指针指向的内容都为不可变量 int a = 8; const int * const p = &a; 这时,const...值传递的 const 修饰传递,一般这种情况不需要 const 修饰,因为函数会自动产生临时变量复制实参值 #include using namespace std; void
最近打算整理一下 C++ 的知识点,在 github 上搞一个项目,美其名曰“AboutCPlusPlus”,项目地址:https://github.com/CPythoner/AboutCPlusPlus...在 C++ 中用来修饰内置类型变量、自定义对象、成员函数、返回值、函数参数。 1....const int a = 5; int const b = 5; const int arr1[3] = {1,2,3}; int const arr2[3] = {1,2,3}; 来看一些对 const...引用 const int &c = a; // 正确 int *d = &a; // 错误:不能为 const 变量绑定指向 non-const 的指针 const int *e = &a; //...如果有个成员函数想修改对象中的某一个成员变量,可以使用 mutable 关键字修饰这个成员变量: #include using namespace std; class Test {
领取专属 10元无门槛券
手把手带您无忧上云