c语言和c++的const的区别

const
C++中的const:
1.const修饰的局部变量赋值常量时,局部变量保存在符号表中,修改不了,是一个常量
2.const修饰的全局变量保存在常量区,不能被修改
3.const修饰的全局变量默认是内部链接属性,加上extern就变成外部链接属性。
const单词字面意思为常数,不变的,它是C/C++中的一个关键字,是一个限定符,它用来限定一个变量不允许改变,它将一个对象转换成一个常量
const int a = 10;
a = 100;//编译错误const限定一个变量不允许改变
C语言中的const:
1.const修饰的局部变量,存在栈区,虽然不能通过const修饰的变量区修改栈区的内容,但是可以通过地址区修改。
2.const修饰的全局变量是保存在常量区,不能通过变量名区修改,也不能通过地址去修改
3.const修饰的全局变量,如果想在其他文件使用,则可直接extern声明外部可用即可
#include<stdio.h>
void test03()
{
    extern const int num;//声明是外部可用的
    printf("num = %d\n",num);
}
const int b = 10;//const修饰的全局变量保存在常量区
//const修饰的全局变量
void test02() {
    int *p = &b;
    *p = 100;//错误的,不能修改常量区的内容
    printf("%d\n", b);
}
//const修饰的局部变量
void test01() {
    //在C语言中const修饰的变量保存在栈区
    const int a = 10;
    //a = 100;
    int *p = &a;
    *p = 100;
    printf("%d\n", a);
}
int main()
{
    
    test01();
    test02();
    test03();
    return 0;
}
C++中的const:
#include<iostream>
using namespace std;
//const修饰的全局变量
void test03()
{
    extern const int num;
    cout << num << endl;
}
const int b = 1;
void test02()
{
    //const修饰的全局变量存在常量区
    //b = 100;
    int *p = (int *)&b;
    *p = 100;//错误的
    cout << b << endl;
}
void test01()
{
    //C++中的const修饰的局部变量
    const int a = 10;
    //a = 100;
    int *p = (int *)&a;
    //C++中的const修饰的局部变量保存在了符号表中
    //当对const修饰的局部变量取地址是,编译会产生一个临时变量来保存a的地址
    *p = 100;
    cout << a << endl;
}
int main()
{
    test03();
    return 0;

}
extern const int num = 1;//const修饰的全局变量默认修饰的是内部链接属性,加上extern就可以变成外部链接属性。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/179439.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

案例-某乎参数x-zse-96逆向补环境

文章目录 前言一、流程分析二、导出代码三、补环境总结 前言 本文章中所有内容仅供学习交流使用&#xff0c;不用于其他任何目的&#xff0c;不提供完整代码&#xff0c;抓包内容、敏感网址、数据接口等均已做脱敏处理&#xff0c;严禁用于商业用途和非法用途&#xff0c;否则…

springboot实现验证码功能

转载自 : www.javaman.cn 1、编写工具类生成4位随机数 该工具类主要生成从0-9&#xff0c;a-z&#xff0c;A-Z范围内产生的4位随机数 /*** 产生4位随机字符串*/public static String getCheckCode() {String base "0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmn…

Python使用http代理爬取dy视频播放量

现在在gpt的加持下写一些简单的代码还是很容易的&#xff0c;效率高&#xff0c;但是要有一点基础&#xff0c;不然有时候发现不了问题&#xff0c;这些都需要经验积累和实战&#xff0c;最好能和工作结合起来&#xff0c;不然很快一段时间就忘的干干净净了&#xff0c;下面就是…

异步爬虫提速实践-在Scrapy中使用Aiohttp/Trio

在构建爬虫系统时&#xff0c;提高爬虫速度是一个关键问题。而使用异步爬虫技术可以显著提升爬取效率。在本文中&#xff0c;我将与大家分享如何在Scrapy中利用Aiohttp或Trio库实现异步爬取&#xff0c;以加快爬虫的速度。让我们开始吧&#xff01; 1. 安装所需的库 首先&…

内存标记扩展(MTE):通过架构增强内存安全性

目录 一、简介 二、谷歌的声明 三、内存安全违规 四、MTE如何工作 五、大规模部署MTE

springboot实战之stream API应用过滤不符合条件的数据

现实项目&#xff0c;根据条件需要过滤列表中的数据。查询List<BgroupCartDto> cartList&#xff0c; orderTime不空的子集。 实现 List<BgroupCartDto> cartList ddBgroupCartMapper.selectList(wrapper); List<BgroupCartDto> result cartList.stream…

C语言——数组转换

将的两行三列数组转换为三行两列的数组 #define _CRT_SECURE_NO_WARNINGS 1#include<stdio.h> int main() {int a[2][3]{{1,2,3},{4,5,6}};int b[3][2],i,j;for ( i 0; i <1; i){for ( j 0; j <2; j){printf("%5d",a[i][j]);b[j][i]a[i][j];}printf(&…

python tkinter 使用(七)

python tkinter 使用(七) 本篇文章主要讲下tkinter 中的message 控件. Message控件可以用于在窗口中显示一段文本消息. 以下是个简单的例子: #!/usr/bin/python3 # -*- coding: UTF-8 -*- """Author: zhTime 2023/11/24 上午11:38 .Email:Describe: "…

为第一个原生Spring5应用程序添加上Log4J日志框架!

&#x1f609;&#x1f609; 学习交流群&#xff1a; ✅✅1&#xff1a;这是孙哥suns给大家的福利&#xff01; ✨✨2&#xff1a;我们免费分享Netty、Dubbo、k8s、Mybatis、Spring...应用和源码级别的视频资料 &#x1f96d;&#x1f96d;3&#xff1a;QQ群&#xff1a;583783…

【.NET全栈】.net的微软API接口与.NET框架源码

文章目录 0 前言1 微软官方.net接口学习2 .NET框架源码总结 0 前言 如果浏览器打不开链接&#xff0c;换一个浏览器打开。 我是 打不开微软的链接&#xff0c;使用&#xff1a; 可以打开&#xff01;&#xff01;&#xff01; 1 微软官方.net接口学习 https://docs.microsoft…

Golang Proxy服务:构建高性能的网络代理

Golang Proxy服务&#xff1a;构建高性能的网络代理 简介 在当今互联网时代&#xff0c;代理服务变得日益重要。它可以帮助用户访问被限制的内容&#xff0c;保护用户隐私&#xff0c;加速网络访问等。Golang是一种高性能的编程语言&#xff0c;它的并发特性和网络库使得它成…

如何写好产品软文?软文撰写指南!

针对某种产品写一篇软文&#xff0c;我们应该怎么构思&#xff0c;怎么提笔去写&#xff0c;怎么写得让用户认可我们的产品&#xff0c;并产生消费的冲动&#xff0c;这是需要讲究技巧的。 今天伯乐网络传媒来给大家分享三个步骤&#xff0c;教你轻轻松松撰写一篇爆文&#xf…

电子学会C/C++编程等级考试2022年03月(二级)真题解析

C/C++等级考试(1~8级)全部真题・点这里 第1题:温度统计 现有一段时间的温度数据,请统计指定温度出现的次数。 时间限制:1000 内存限制:65536输入 第一行一个整数n,表示温度数据的个数。(0 < n ≤ 200) 第二行n个整数,以空格分隔,每个整数表示一个温度,温度的范围大…

Opencv-C++笔记 (19) : 分水岭图像分割

文章目录 一、基于距离变换与分水岭的图像分割1、图像分割2、距离和变换与分水岭距离变换常见算法有两种分水岭变换常见的算法 3、距离变换API函数接口4、watershed 分水岭函数API接口步骤 5、代码 一、基于距离变换与分水岭的图像分割 1、图像分割 图像分割(Image Segmentat…

LeetCode 每日一题 2023/11/20-2023/11/26

记录了初步解题思路 以及本地实现代码&#xff1b;并不一定为最优 也希望大家能一起探讨 一起进步 目录 11/20 53. 最大子数组和11/21 2216. 美化数组的最少删除数11/22 2304. 网格中的最小路径代价11/23 1410. HTML 实体解析器11/24 2824. 统计和小于目标的下标对数目11/25 14…

c++中using的声明

using的编译指令 using的编译指令使整个命名空间的标识符可用 #include<iostream> using namespace std; namespace namea { int a 10; void foo() { cout << "hello using" << endl; } } void test01(){ //int a 100;…

解密编程难题:程序员的突破之路

引言&#xff1a; 在编程的世界里&#xff0c;技术难题就像是一道道难以逾越的障碍&#xff0c;让程序员们倍感挑战。Bug、性能优化和跨平台兼容性等问题&#xff0c;常常困扰着开发者们。然而&#xff0c;正是这些难题激发了程序员们的求知欲和创造力&#xff0c;让他们不断寻…

职场“雷人”瞬间

职场是人际交往的舞台&#xff0c;而在这个舞台上&#xff0c;总会有一些令人哭笑不得的瞬间。领导的奇怪任务、同事的自以为是&#xff0c;抑或是技术一无所知的领导对任务的荒谬要求&#xff0c;这些故事让我们在工作中既有欢笑&#xff0c;又有无语。 1. 领导的“挥洒自如”…

Android问题记录 - Unable to make field private final java.lang.String java.io.File.path accessible(持续更新)

文章目录 前言开发环境问题描述问题分析解决方案补充内容最后 前言 最近一个Flutter项目有新需求&#xff0c;开发时一直是在iOS设备上运行&#xff0c;花了几天做完后运行到Android设备测试&#xff0c;结果项目构建失败了。 开发环境 Flutter: 3.7.11Android Studio: 2022…

Golang实现YOLO:高性能目标检测算法

引言 目标检测是计算机视觉领域的重要任务&#xff0c;它不仅可以识别图像中的物体&#xff0c;还可以标记出物体的位置和边界框。YOLO&#xff08;You Only Look Once&#xff09;是一种先进的目标检测算法&#xff0c;以其高精度和实时性而闻名。本文将介绍如何使用Golang实…