c++语言增强的地方
目录
1.对全局变量的检测能力
2.struct类型增强
3.c++中所有变量和函数都必须有类型
4.c++中新增的bool类型
5.三目运算符的加强
6.const的增强
7.对枚举的增强
1.对全局变量的检测能力
- C语言中同时定义两个相同的全局变量编译器并不会报错,而c++中就会报重定义错误
#include<stdio.h>
int g_a;//bss段
int g_a=10;//data段
int main()
{printf("%d",g_a);//最后对打印出10return 0;
}
#include<iostream>
using namespace std;int g_val;
//int g_val = 20;//c++会报g_val重定义
int main(void)
{printf("%d",g_val);
}
2.struct类型增强
- C语言中创建结构体类型的变量必须加struct关键字
#include<stdio.h>
struct student
{int id;char name[34];
};
int main()
{struct student s1;//student s1;//errreturn 0;
}
- c++可以不加struct结构体关键字
#include<iostream>
struct student
{int id;char name[43];
}
int main(void)
{student s1;
}
3.c++中所有变量和函数都必须有类型
- C语言接受没有返回类型的函数,接受单个形参传递多个实参的情况
#include<stdio.h>
f()//函数没有返回类型默认返回类型为整形,所以在C语言中不会报错
{return 10;
}
int g(int a)
{return 10;
}
int main()
{f();g(20,30,40,50);//C语言接受单个形参传递多个实参return 0;
}
4.c++中新增的bool类型
#include<iostream>
using namespace std;
int main()
{bool flag=true;flag = true;cout<<"flag(true)="<<flag<<endl;flag = false;cout<<"flag(false)="<<flag<<endl;flag=20;cout<<"flag="<<flag<<endl;return 0;
}
- bool类型的变量的值只有0和1两种
5.三目运算符的加强
- C语言中三目操作符不能当左值来使用
#include<stdio.h>
int main()
{int a=10;int b=20;int c=0;//左值 右值c=(a<b?a:b);printf("c=%d\n",c);(a<b?a:b)=50;//C语言中三目运算符不能当左值//10//10=50;return 0;
}
- c++中三目操作符可以当左值来使用
6.const的增强
int const b; //代表一个常整形数
const int* c;//c是一个指向常整型数的指针(所指向的内存数据不能被修改,但本身可以修改)
int* const d;//常指针(指针变量不能被修改,但是他所指向的空间可以被修改)
const int* const e;//一个指向常整形的常指针(指针和它所在的内存空间,均不能被修改)
- C语言中const修饰的变量并不能改变成为常量
#include<stdio.h>
int main()
{const int a=10;int* p=&a;*p=70;return 0;
}
最后a会改变成为70,说明被const修饰的a并没有成为常量
- c++中const修饰的变量就算通过指针也不会被改变
#include<iostream>
using namespace std;
int main()
{const int a=10;int* p=(int*)&a;*p=20;cout<<"a="<<endl;cout<<"*p="<<*p<<endl;return 0;
}
c++中const修饰的变量在赋值时并不是在栈区开辟空间,而是在符号表。
思考:常量可以取地址吗??
答:如果对一个常量取地址,编译器会临时开辟一个空间,让这个指针存放这个临时空间的地址
7.对枚举的增强
C语言中枚举本质就是整形,枚举变量可以用任意整形赋值。而c++中枚举变量,只能用枚举出来的元素初始化。
#include<iostream>
using namespace std;
enum season
{SPR,SUM,AUT,WIN,
};
int main(void)
{enum season s=SPR;//s=0 //err 但是C语言可以通过s=SUM;return 0;
}
相关文章:
c++语言增强的地方
目录 1.对全局变量的检测能力 2.struct类型增强 3.c中所有变量和函数都必须有类型 4.c中新增的bool类型 5.三目运算符的加强 6.const的增强 7.对枚举的增强 1.对全局变量的检测能力 C语言中同时定义两个相同的全局变量编译器并不会报错,而c中就会报重定义错…...
评论发布完整篇(react版)
此篇文章阐述评论的最新、最热之间的tab标签切换(包括当前所在tab标签的高亮显示问题);当前评论的删除;除此之外还延伸了用户的评论实时发布功能。其中最新tab标签所展示的内容是根据当前评论点赞数来进行排序,点赞数量…...
前端window.open的简单使用
JavaScript 中的 Window.open() 用法详解-CSDN博客 window.open("https://www.baidu.com/?tn49055317_12_hao_pg", _blank);...
基于开源软件构建存储解决方案的思考
近来看了一些IBM的存储产品的资料,有一些收获。 依据存储软件和搭配硬件,IBM存储产品的组合,大致分类如下: 自研存储软件,搭配自研专有硬件自研存储软件,搭配通用服务器硬件,比如IBM Storage S…...
【leetcode】动态规划::前缀和(二)
标题:【leetcode】前缀和(二) 水墨不写bug 正文开始: (一) 和为K的子数组 给你一个整数数组 nums 和一个整数 k ,请你统计并返回 该数组中和为 k 的子数组的个数 。 子数组是数组中元素的连续…...
SpringBoot自动装配原理之@Import注解解析
文章目录 1. 概述2. 使用2.1 导入普通Bean2.2 导入配置类2.3 导入 ImportSelector 实现类2.4 导入 ImportBeanDefinitionRegistrar 实现类 3. 区别 1. 概述 当谈及现代Java开发领域中的框架选择时,SpringBoot无疑是无与伦比的热门之选。其简化了开发流程࿰…...
49 样式迁移【李沐动手学深度学习v2课程笔记】
1. 样式迁移(Style Transfer) 计算机视觉的应用之一,将样式图片中的样式(比如油画风格等)迁移到内容图片(比如实拍的图片)上,得到合成图片 可以理解成为一个滤镜,但相对于滤镜来讲…...
Linux的学习之路:4、权限
一、Linux权限的概念 权限我们都熟悉,最常见的就是在看电视时需要vip这个就是权限,然后在Linux就是有两个权限,就是管理员也就是超级用户和普通的用户 命令:su [用户名] 功能:切换用户。 例如,要从root用户…...
自定义类型—结构体
目录 1 . 结构体类型的声明 1.1 结构的声明 1.2 结构体变量的创建与初始化 1.3 结构体的特殊声明 1.4 结构体的自引用 2. 结构体内存对齐 2.1 对齐规则 2.2 为什么存在内存对齐 2.3 修改默认对齐数 3. 结构体传参 4.结构体实现位段 4.1 位段的内存分配 4.3 位段的…...
【JavaWeb】Jsp基本教程
目录 JSP概述作用一个简单的案例:使用JSP页面输出当前日期 JSP处理过程JSP 生命周期编译阶段初始化阶段执行阶段销毁阶段案例 JSP页面的元素JSP指令JSP中的page指令Include指令示例 taglib指令 JSP中的小脚本与表达式JSP中的声明JSP中的注释HTML的注释JSP注释 JSP行…...
外包干了25天,技术退步明显.......
先说一下自己的情况,大专生,18年通过校招进入杭州某软件公司,干了接近4年的功能测试,今年年初,感觉自己不能够在这样下去了,长时间呆在一个舒适的环境会让一个人堕落! 而我已经在一个企业干了四年的功能测…...
C++(14): STL条件变量std::condition_variable
1. 简述 在C的标准模板库(STL)中,std::condition_variable是一个非常重要的同步原语,用于在多线程编程中实现线程间的条件同步。它允许一个或多个线程等待某个条件成立,当条件成立时,等待的线程会被唤醒并继…...
Harmony与Android项目结构对比
主要文件对应 Android文件HarmonyOS文件清单文件AndroidManifest.xmlmodule.json5Activity/Fragmententryability下的ts文件XML布局pages下的ets文件resresourcesModule下的build.gradleModule下的build-profile.json5gradlehvigor根目录下的build.gradle根目录下的build-profi…...
langchain 学习笔记-FunctionCalling三种方式
ChatGPT 基于海量的训练数据生成答案,所以它无法回答训练数据中没有的信息或搜索信息 。人们希望 ChatGPT 具有对话以外的各种功能,例如“我想管理我的待办事项列表”。 函数调用是对此类请求的响应。 通过使用函数调用,ChatGPT 现在可以在生…...
CNAS软件测试公司有什么好处?如何选择靠谱的软件测试公司?
CNAS认可是中国合格评定国家认可委员会的英文缩写,由国家认证认可监督管理委员会批准设立并授权的国家认可机构,统一负责对认证机构、实验室和检验机构等相关机构的认可工作。 在软件测试行业,CNAS认可具有重要意义。它标志着一个软件测试公…...
Cohere推出全新升级版RAG大型AI模型:支持中文,搭载1040亿参数,现开源其权重!
4月5日,知名类ChatGPT平台Cohere在其官方网站上发布了一款全新的模型——Command R。 据官方消息,Command R拥有1040亿个参数,并且支持包括英语、中文、法语、德语在内的10种语言。这一模型的显著特点之一在于其对内置的RAG(检索增…...
搭建前后端的链接(java)
搭建前后端的链接(java) 一.前提 1.1 javaEE 搭建前后端的链接首先需要用到javaEE,也就是java企业版,也就是java后端(后端javaSE) 利用javaEE和前端交互,javaSE和数据库交互,javaSE和javaEE之间再进行交互就实现了前后端的交互…...
Java多路查找树(含面试大厂题和源码)
多路查找树(Multiway Search Tree),也称为B树或B树,是一种自平衡的树形数据结构,用于存储大量数据,通常用于数据库和文件系统中。它允许在查找、插入和删除操作中保持数据的有序性,同时优化了磁…...
day6 | 哈希表 part-2 | 454 四数相加II 、383. 赎金信、15. 三数之和、18. 四数之和
今日任务 454 四数相加II (题目: . - 力扣(LeetCode))383 赎金信 (题目: . - 力扣(LeetCode)) 454 四数相加II 题目:. - 力扣(LeetCode) 给你四个整数数组 nums1、num…...
Redis常见数据类型(2)
目录 String字符串 常见命令 SET GET MGET MSET SETNX 计数命令 INCR INCRBY DECR DECRBY INCRFLOAT 其它命令 APPEND GETRANGE SETRANGE STRLEN String字符串 字符串是Redis最基础的数据类型, 关于字符串需要特别注意: (1)首先Redis中所有的键的类型都是字符…...
C++定时器实战:从线程轮询到时间轮算法的演进与选型
1. 定时器技术选型的核心痛点 当我们需要在C项目中实现定时任务调度时,最直观的做法可能就是直接开个线程轮询了。我刚开始做网络服务开发时也这么干过,结果上线后CPU直接飙到90%——这就是典型的"新手陷阱"。实际上,定时器的实现方…...
当机器人遇见城市:江南北如何重塑武汉的智能生活图景
城市,是人类文明的结晶,也是科技创新的试验场。在武汉这座英雄的城市,一场由江南北(武汉)信息技术有限公司(简称“江南北机器人”)引领的智能革命,正悄然改变着市民的日常生活与城市…...
技能管理框架skill-mix:用YAML与声明式配置构建可量化技能体系
1. 项目概述与核心价值最近在梳理团队的知识库和技能树时,我又一次深刻体会到,一个清晰、可量化、可追踪的技能管理体系对个人成长和团队效能有多重要。无论是作为技术负责人评估团队战斗力,还是作为一线开发者规划自己的学习路径,…...
UI-TARS桌面版终极指南:用自然语言控制电脑的免费AI助手
UI-TARS桌面版终极指南:用自然语言控制电脑的免费AI助手 【免费下载链接】UI-TARS-desktop The Open-Source Multimodal AI Agent Stack: Connecting Cutting-Edge AI Models and Agent Infra 项目地址: https://gitcode.com/GitHub_Trending/ui/UI-TARS-desktop …...
【YOLO目标检测全栈实战】36 TensorRT部署实战:YOLOv8n在Jetson Orin上实现5ms推理
上周,我帮一家做无人机巡检的客户部署模型。他们的算法工程师在PC上用ONNX Runtime跑YOLOv8n,推理速度30ms,觉得“挺快”。 结果一上Jetson Orin NX,直接崩到120ms——无人机飞一圈,画面卡得像幻灯片。客户急了:“同样的模型,怎么差这么多?”我看了眼代码,发现他们还…...
Redis分布式锁进阶第一二十五篇
Redis分布式锁进阶第二十五篇:联锁深度拆解 多资源交叉死锁根治 复杂业务多级加锁绝对有序方案一、本篇前置衔接 第二十四篇我们完成了全系列终局复盘,整理了故障排查SOP与企业级落地铁律。常规单资源锁、热点分片锁、隔离锁全部讲透,但真实…...
TVA 在宠物混合监护场景中的创新应用(5)
重磅预告:本专栏将独家连载新书《智能体视觉技术与应用》(系列丛书)部分精华内容,该书是世界首套系统阐述“因式智能体”视觉理论与实践的专著,特邀美国 TypeOne 公司首席科学家、斯坦福大学博士 Bohan 担任技术顾问。…...
STM32的RTC掉电还能走时?深入聊聊后备域和纽扣电池那点事
STM32的RTC掉电还能走时?深入聊聊后备域和纽扣电池那点事 当你在深夜调试STM32的RTC功能时,是否曾好奇过这个小巧的实时时钟为何能在主电源断开后依然精准走时?这背后隐藏着STM32芯片设计中一个精妙的电源管理机制——后备域(Back…...
ESP32平台后量子密码学Kyber算法优化实践
1. ESP32平台上的后量子密码学实践 在物联网设备数量呈指数级增长的今天,设备间的安全通信面临着前所未有的挑战。传统公钥加密算法如RSA和ECC正面临着量子计算的威胁——Shor算法能在多项式时间内破解这些基于大整数分解和离散对数问题的加密体系。作为应对&#x…...
基于Three.js与WebSocket构建虚拟小镇:全栈技术架构与优化实践
1. 项目概述与核心价值最近在折腾一个叫“Alicization-Town”的开源项目,它来自GitHub上的ceresOPA组织。乍一看这个名字,可能会联想到某个动漫或者游戏里的场景,但实际接触后,我发现它远不止于此。这是一个围绕“虚拟小镇”或“数…...
