首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

C++ const各种用法总结

例如: const int i = 128; const int &r = i;(或者 int const &r = i;) const 引用就是指向const 对象的引用。...// ok: const_cast是C++中标准的强制转换,C语言使用:double *ptr = (double*)&dVal; 2.const 指针(指针本身为常量) 声明或定义的格式如下(定义时必须初始化...const或非const类型变量,完全不需要加上这个const关键字。...例如: A a; A b; A c; a + b = c; // errro: 如果在没有const 修饰返回值的情况下,编译器不会报错。...,而不是一般的对象实例,原因同上; 4.const在成员函数中的三种用法(参数、返回值、函数)要很好的使用; 5.不要轻易的将函数的返回值类型定为const; 6.除了重载操作符外一般不要将返回值类型定为对某个对象的

2K10

C语言const 关键字

创作者~周榜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 修饰指针注意以下两点如下。 ⒈用来限定指向空间的值是不可修改的。 ⒉限定指针式不可修改的。

51820
  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    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>与指针的结合

    50111

    const用法小结

    c程序中,const用法主要有定义常量、修饰函数参数、修饰函数返回值等3个用处。 在c++程序中,它还可以修饰函数的定义体,定义类中某个成员为常态函数,即不改变类中的数据成员。...(2) 在c++中使用const常量而不使用宏常量,即const常量完全取代宏常量。 C++中的Const 一,一般常量和对象常量   1. 一般常量   一般常量是指简单类型的常量。...如果const位于星号的左侧,则const就是用来修饰指针所指向的变量,即指针指向为常量;如果const位于星号的右侧,const就是修饰指针本身,即指针本身是常量。...所以,在使用const修饰指针时,应该注意const的位置。...在c++面向对象的程序设计中,指针和引用使用得较多,其中使用const修饰的常指针和常引用用得更多。

    96970

    关于const用法

    const修饰指针 1、const修饰变量 变量是可以修改的,如果把一个地址交给一个指针变量,通过指针变量也可以修改这个变量,但是我们如果希望一个变量上加上一些限制不能被修改。那怎么样才能做到呢?...这时候看就该是const发挥作用的时候了。...m; //no } void test4() { int n = 10; int m = 20; int const * const p = &n;//相当于是const int *const p...} int main() { //测试⽆const修饰的情况 test1(); //测试const放在*的左边情况 test2(); //测试const放在*的右边情况 test3();...//测试*的左右两边都有const test4(); return 0; 结论: const在修饰指针变量时 1、const在*的左边时,修饰的是指针指向的内容,保证指针指向的内容不能通过指针来改变

    10210

    C++】C 语言C++ 语言const 关键字分析 ② ( const 常量分配内存时机 | const 常量在编译阶段分配内存 )

    一、const 常量内存分配时机 在上一篇博客中 , 讲到了获取 const 常量的地址 , 代码如下 : // 定义常量 // 该常量定义在了 符号表 中 // 符号表 不在内存四区中...分配一个 4 字节的空间 // 将 常量 a 的值 10 存储进去 p = (int *)&a; 在所有的编程语言中 , 常量 都具有如下特点 : 定义时分配内存 , 运行期间保持不变...; const 常量 通常指的是在程序运行期间其值不会改变的变量 , 常量在定义后会被分配内存 , 这个过程一般发生在编译器的编译阶段 ; C++ 程序都是先进行编译 , 然后再执行 , 编译时分配内存意味着在程序运行之前...不是在运行期间分配内存的 ) 二、使用如下代码验证 const 常量内存分配时机 ---- 使用如下代码验证 : // 包含 C++ 头文件 //#include "iostream" // 使用...三、分析验证结果 - const 常量在编译阶段分配内存 在上述代码中 , 先定义了变量 a , 再定义了常量 b , 最后定义了变量 c ; 变量 a 和 变量 c 肯定是在编译器编译时分配内存的 ,

    39650

    C语言const关键字与指针

    const修饰指针的4种形式 const关键字,在C语言中用来修饰变量,表示这个变量是常量。 const修饰指针有4种形式,区分清楚这4种即可全部理解const和指针。...第一种:const int *p; 第二种:int const *p; 第三种:int * const p; 第四种:const int * const p; // 第一种 const int...int * const p3; // p本身是cosnt的,p指向的变量不是const的 // 第四种 const int * const p4;// p本身是cosnt的,p指向的变量也是const...const修饰的变量到底能不能真的被修改,取决于具体的环境,C语言本身并没有完全严格一致的要求。...所以在C语言中使用const,就好象是 一种道德约束而非法律约束 所以大家使用const时更多是传递一种信息,就是告诉编译器、也告诉读程序的人,这个变量是不应该也不必被修改的。

    64310

    C语言结构体用法_c语言中的struct用法

    结构体说明和结构体变量定义 在Turbo C中, 结构体也是一种数据类型, 可以使用结构体变量, 因此, 像其它类型的变量一样, 在使用结构体变量时要先对其定义。  ...’Y’; fp="fopen"("wage.dat", "w"); /*创建一个文件只写*/ while(c==’Y’||c==’y’) /*判断是否继续循环*/ { printf("/nName:..."); c="getche"(); if(c==’Y’||c==’y’||c==’N’||c==’n’) break; } } fclose(fp); } 3....结构体的复杂形式 (1) 嵌套结构体 嵌套结构体是指在一个结构体成员中可以包括其它一个结构体, Turbo C 允许这种 嵌套。...c. 位结构体总长度(位数), 是各个位成员定义的位数之和, 可以超过两个字节。 d. 位结构体成员可以与其它结构体成员一起使用。

    77310

    C++雾中风景3:const用法的小结

    const作为CC++共有的关键字,很多使用的方式大同小异。但由于C++是一门面向对象的语言,在类和对象中有更多的使用规则。...之前学习C语言的时候就被const这个关键字搅得焦头烂额,正巧也借这篇文章做个完整的小结。 1.const关键字: const关键字,翻译成中文是常量,常数的意思。...所以在绝大多数场合之中,const是来定义常量的,定义常量也是好的编程习惯。在C语言之中,定义常量通常会使用宏定义或const关键字来定义常量。...类之中的const关键字 这部分内容是C++与C语言区别的部分,Const关键字对类之中的变量与函数都可以修饰,又涉及到之前系列文章反复涉及的权限控制,也就是封装的内容。...(任性自由的Python~~) Golang C语言的亲兄弟,const关键字与CC++基本区别不大,读者可以之行总结。

    76830

    C 语言const 关键字用法 ( 常量指针 - const 在 * 左边 - 修饰数据类型 - 内存不变 | 指针常量 - const 在 * 右边 - 修饰变量 - 指针不变 )

    文章目录 一、const 普通用法 二、常量指针 ( 指向 常量 的指针 | 被指向的内存不能被修改 ) 三、指针常量 ( 指针不能被修改 ) 三、指向 常量 的 指针常量 四、const 在 * 左右的意义...一、const 普通用法 ---- const 关键字 在 CC++ 中的表现不同 , 本篇博客主要介绍 C 语言中的 const 用法 ; const用法 : 下面的 2 个写法作用相同..., const 可以在 数据类型 前面 , 也可以在 数据类型 后面 ; // 下面两个 const 用法相同 const int a; int const a; 二、常量指针 ( 指向 常量 的指针...都不能被修改 ; const char * const c; 四、const 在 * 左右的意义 ---- 普通的数据类型 , const 在数据类型左右作用相同 ; 指针数据类型 , const...*c , const 修饰的是 char , char 数据不能被修改 , 这是 常量指针 , 指向常量的指针 ; const 修饰的是右边的内容 , 右边是 变量 , 相当于 const 在 * 右边

    1.4K20

    超实用的const用法

    看到标题,你可能很常见这个const用法,但是我还是要总结分享出来,因为const 用法,长时间没有用的话,还是会忘记的,希望也能让你回忆起它的用法。...const用法最难一点就是和指针在一起用,这是比较难的地方(如果你理解不了的话),特别是刚学指针的时候,你会弄晕了头,以下几种形式在看一些代码会经常看到的: a、const int *p b...、int const *p c、int *const p d、const int * const p 先看第一个用法,我还是用实际代码来举例: #include int main(void....c:8:9: error: assignment of read-only location ‘*p’ *p = 9; ^ 报错和第一种用法一样,不能通过指针修改所指向的值...最后一种用法: #include int main(void) { int a = 6; int b = 8; const int *const p=&a; *p = 9; p=&b; printf

    20310

    const的简单用法

    const常变量在编译期起作用,在运行时无作用。在一个变量前可以用const修饰,这就意味这个变量不能被直接修改。...不过我们也可以用const修饰指针,分为两种情况:const在*左边和const在*右边。 当const在*左边时,我们不能对指针指向的内容进行修改,但可以修改指针指向的对象。...当const在*右边时,我们不能修改指针指向的对象,但可以修改指针指向的内容。 如果我们希望指针既不能修改指向的对象,也不能修改指向的内容,我们可以在*两边都加上const。...结论:const如果在*左边,修饰的是指针指向的内容,保证指针指向的内容不能通过指针来改变,但是指针变量本身的内容可以改变。...const如果在*右边,修饰的是指针变量本身,保证了指针变量的内容不能修改,但是指针指向的内容,可以通过指针改变。

    8610

    c语言 switch错误用法,C语言switch语句的详细用法

    C语言还为多分支选择提供了另一个switch语句,其一般形式为: 开关(表达式){ 案例常量表达式1: 语句1; 案例常量表达式2: 语句2; … 条件常量表达式n: 语句n; 默认值: 语句n...但是在输入3之后,将执行情况3及以后的所有句子c语言 switch语句,并输出星期三及以后的所有单词. 这当然是不希望的. 为什么会这样?这仅反映了switch语句的功能....为避免上述情况,C语言还提供了一个break语句,专用于跳出switch语句. break语句仅具有关键字break,没有参数. 稍后将详细介绍....修改示例程序,在每个case语句之后添加一个break语句c语言 switch语句,以便在每次执行后可以跳出switch语句,以避免输出意外结果.

    1.5K20

    C语言const和volatile究极学习

    关于const用法,现在大概前前后后应该写了有两篇文章,以前学习的时候,用法体会不是那么深刻,为啥这么说呢,因为在学习c++的时候,会发现const关键字有新的玩法,关于这个新的玩法,大家可以去看最近学习总结写的...,在运行期没有用 注:const修饰的变量不是真的常量,它只是告诉编译器该变量不能出现在赋值符号的左边 2、const全局变量的分歧: 在现代c语言编译器中,修改const全局变量将导致程序崩溃 标准c...同时为了验证“标准c语言编译器不会将const修饰的全局变量存储于只读存储区中,而是存储于可修改的全局数据区,其值依然可以改变”这句话,我把这段代码放到dev c++上进行试验: 说明:我这个版本的编译器支持标准...c语言,所以没导致程序崩溃,能够正常运行 4、const的本质 c语言中的const使得变量具有只读属性 现代c编译器中的const将具有全局生命周期的变量存储于只读存储区,不是放在全局数据区 注:const...5、const修饰函数参数和返回值 const修饰函数参数表示在函数体内不希望改变参数的值 const修饰函数返回值表示返回值不可改变,多用于返回指针的情形 在c语言中的字符串字面量存储于只读存储区中,

    39820
    领券