知识分享:const 在C语言与C++中的区别与使用

2022-12-21 0 896

单纯的constURL里头的学识却是蛮大的,越此基础的科学知识越难忘记。

知识分享:const 在C语言与C++中的区别与使用

1.在c词汇中const

在C词汇中 constURL用以润色表达式名叫黎贞,Chavanges。

换句话说透过表达式名无法修正它的值,但能透过获得它的门牌号来修正他的值。

#include<stdio.h> int main(){ const int a = 10; int *p = (int *)&a; *p = 20; printf(“a = %d\n”,a); return 0; }

与此同时被const润色的函数调用也是外相连,其它示例要提及只须要加之extern方可。

被const润色的函数调用无法以门牌号的方式展开修正,虽然它在缓存中坐落于常量区,他的门牌号内部空间是黎贞的。在C词汇中被const的表达式是间接被初始化的。

知识分享:const 在C语言与C++中的区别与使用

2.c++中的const

2.1 c++中const的采用

c++中 constURL被用以表示自变量,和#define的作用一样。

在C++中能否透过门牌号来改变它的值,取决于是否给他分配了缓存。主要分以下三中情况

1、const int a = 10;

这种情况是不初始化的,间接被写在符号表中,即使后面被分配了缓存,那么a的值也不会被改变,输出的值一直都是符号表中的值

“` #include<iostream> int main(){ const int a = 10; std::cout << “original a =” << a << std::endl; int *p = (int *)&a; *p = 200; std::cout << “*p =” << *p << std::endl; std::cout << “last a =” << a << std::endl; return 0; } “`

测试结果如下图所示:

知识分享:const 在C语言与C++中的区别与使用

2、int b =100;

const int a = b;

3、const person per ={“name”,”id”}

2和3这种情况都是间接初始化的,并不会被写在符号表中,它的值是能透过门牌号访问的方式来改变的。

2.2 c++中const的采用建议

在c++中尽量将宏定义#define 替换为 const

虽然#define在编译的预处理阶段就替换为相对应的自变量,假如 #define Max 1024; 那么我们在虽然这发生错误,他只会提示1024出现错误,

而我们换成const int Max = 1024;系统就会提示我们这一行发生了错误,并且定义到相对应的行。

2.3 自变量指针与指针自变量的差别

这一题目都是面试中好多公司愿意问的问题,刚好学习到这,就把这块也纳入到本章节中。

指针自变量

int *const p;,顾名思义它是一个自变量,只不过被指针润色。

int a = 10, b =20; int *const p = &a; p = &b; //× *p = 30; //√

自变量指针

const int *p;p是一个自变量

int a = 10, b =20; int *const p = &a; p = &b; //√ *p = 30; //×

写在最后:另外,对于准备学习C/C++编程的小伙伴,如果你想更好的提升你的编程核心能力(内功)不妨从现在开始!

编程学习书籍撷取:

知识分享:const 在C语言与C++中的区别与使用

编程学习视频撷取:

知识分享:const 在C语言与C++中的区别与使用

整理撷取(多年学习的源码、项目实战视频、项目笔记,此基础入门教程)

欢迎转行和学习编程的伙伴,利用更多的资料学习成长比自己琢磨更快哦!

对于C/C++感兴趣能关注小编在后台私信我:【编程交流】一起来学习哦!

相关文章

发表评论
暂无评论
官方客服团队

为您解决烦忧 - 24小时在线 专业服务