C++一些基本概念总结【数据表达篇】

C++的基本概念 我们需要创建一个新的数据结构。你将需要一个新的变量:例如,将数组中的一个数组,写成如下代码:在上述代码中,我们将数组的变量替换成字符串变量 daw、 re、 cdd、 mdd。当输入不同大小的数据时,只需要修改一个变量即可获得不同大小的数据。此外,还可以在不改变数据类型的情况下修改变量值。这就是 C++程序的全部流程。 阅读详情

本文总结了C++中一些最基本的概念


1.C和C++的区别

C语言:面向过程,结构化和模块化

C++面向对象程序设计特点:自下至上,从局部开始。

      面向对象程序设计主要特征:

    (1)封装性:类

    (2)继承性:派生类、基类

    (3)多态性:函数重载、模板、虚函数


2.变量与数据类型

2.1常量

         const常量:const  <类型名> <常量名>=<表达式>

         宏常量:# define  <宏名> <常量>

               两者的区别:

             (1)const有数据类型,而宏常量没有数据类型。

             (2)编译器会对const进行安全检查;而后者只进行替换,没有进行检查,可能会有意想不到的结果。

             (3)有些集成化调试工具可以对const进行调试,但不能对宏常量进行调试。


2.2变量

         变量:[<存储类>] <类型名或类型定义> <变量名表>

              存储类:(可省略,默认为auto)

              auto:一次性存储,可被覆盖

              register:放在通用寄存器

              extern:所有函数和程序段中都可用

              static:固定内存地址,在整个程序运行期间都有效


          命名规则:由字母或下划线开头,后面可有数字

          匈牙利命名法:在名字前面加相应的前缀


          作用范围:

               全局变量:不在任何一个内类、函数等中,在内存数据区不变

               局部变量:在临时工作区中,以堆栈性质允许反复占用


               一个程序将操作系统分配给其的内存块分为:

                      代码区:存放代码

                      全局数据区(静态区):存放全局数据和静态数据

                      堆区:由程序员分配和释放,存放动态分配的变量。

                      栈区:由编译器自动分配和释放,存放函数的参数值,局部变量的值等。


          基本数据类型(长度以字节为单位)(32位编译器):

               整型:int-4,short[int]-2

               字符:char-1

               浮点(实型):单精度float-4(即32位),双精度double-8,long double-10

               布尔:bool-1


               前面都可加上修饰符:

                     signed:有符号,unsigned:无符号

                     long:长型,short:短型

                     注意:

                   (1)可以修饰整型和字符型,只有long还能修饰double;

                   (2)存储空间:字节数跟机器字长有关;

                   (3)有无符号占用的字节数一样


3.运算符和表达式

3.1运算符

(1)   算术运算符:+ - * 、 % ++ --

             ++i:使用前i加1

             i++:使用后i加1

(2)   赋值运算符:有=的

             a<<=b:a左移b位赋给a

             a<<1:a左移1位

             1<<a:1左移a位,每左移1位就乘以2,所以结果是2^a

             a>>=b:a右移b位赋给a

             a^=b:ab逐位异或赋给a

             a&=b以及a|=b同理

(3)   关系运算符:>,<,==,!=

(4)   逻辑运算符:! && ||

(5)   条件运算符:<>?<>:<>

(6)   逗号运算符

(7)   位运算符:&按位与、|按位或、^按位异或、>>右移位、<<左移位、~按位取反

(8)   sizeof:所占用的字节数。不同计算机支持的数据类型长度是不一样的。

 

3.2表达式

       关系,逻辑,条件,赋值,逗号(不赘述)


4.程序控制结构

    顺序:表达式、输入输出、格式控制符

            输入 cin>>a

            输出 cout<<a<<endl

            输入输出加入#include<iostream>和using namespace std;

    选择:if、switch

    循环:for、while、for…while

    转向:

       break:跳出循环,执行循环后面的语句

       continue:跳出本次循环进行下一次循环

       goto:无条件跳转到指定标号语句处

       return::返回语句



C++ 后缀表达式求值 📋 个人简介 🎉大家好,我是3月份新人榜排名第三的 ༺Blog༒Hacker༻ 💬支持我:点赞👍+收藏⭐️+留言📝 🌺格言:༺永做优质༒programmer༻ 📣后缀表达式求值 【问题描述】 读入一个后缀表达式(字符串),只含有0-9组成的运算数及 加(+)、减(−)、乘(∗)、除(/,整除)四种运算符,以及空格。 每个运算数之间用一个空格隔开,不需要判断给你的表达式是否合法。以’#'作为结束标志。 保证中间的运算过程不会爆INT 【输入格式】 一行字符,如【题目描述】。 【输出格式】 一个整数,表示表达式 阅读详情

相关推荐

深入解析CEL-CPP:安全高效的C++表达式引擎实战指南

表达式语言是处理动态业务逻辑和配置的核心技术,它允许系统在不修改核心代码的情况下,通过解析和执行字符串形式的逻辑来改变行为。其原理在于将字符串转换为抽象语法树进行安全求值,关键在于平衡表达能力和执行安全性。这项技术的价值在于极大地提升了系统的灵活性和可维护性,实现了声明式配置与动态策略。其应用场景广泛,包括云原生策略授权、游戏技能系统、数据过滤以及工作流条件判断等。本文聚焦于Google开源的CEL-CPP,这是一个专注于**安全沙箱**和**类型安全**的C++表达式引擎实现,它通过**非图灵完备**的设

weixin_30086969的博客 349

C++程序设计基础之(第1章)基本数据与表达式

1.1概述 C++源于C语言,请自行百度。 1.1.1程序设计与程序设计语言 高级语言提供了常用的数据描述和对数据操作的规则描述。程序设计就是根据特定的问题,使用某种程序设计语言,设计出计算机执行的指令序列。程序设计是一项创造性的工作,根据任务主要完成以下俩个方面的工作 ...

qq_41589763的博客 1307

C++语言的正则表达式

正则表达式是一个描述字符串模式的序列,通常用于查找、替换和验证字符串。正则表达式通过特定的语法规则定义模式,允许用户根据需求灵活地构造匹配条件。正则表达式作为字符串处理的强大工具,在C++中得到了良好的支持,使得开发者在进行文本分析、数据验证等操作时更加高效。通过理解正则表达式的基本构成、C++中的使用方法以及优化技巧,程序员能够在各种应用场景中更好地利用这个工具。希望本文能够帮助读者更深入地理解和使用C++语言中的正则表达式。

2501_90231148的博客 1388

01、C++标准数据类型

在C++语言中,整型类型标识符为int。根据整型变量的取值范围又可将整型变量定义为以下8种整型类型: 字符常量有以下两种表示方法 1、普通表示形式 字符常量是由单个字符组成,所有字符采用ASCII编码,ASCII编码共有128个字符(表2-4)。在程序中,通常用一对单引号将单个字符括起来表示一个字符常量。如:'a','A','0'等。如字符A的序号是65,字符a的序号是97, 字符0的序号的48。 2、 转义字符表示形式 转义字符有三种用

weixin_43994529的博客 1621

数据结构之——用C++实现算术表达式求值

基本功能:利用栈实现整数的加减乘除运算。 使用方法:输入表达式之后再输入#表示表达式结束,如下图: 缺点:不能进行小数的运算 代码如下: #include #include #include using namespace std; #define MAXNUM 50 class Stack_for_number { private: float num[M

caterpillarous的博客 8237

C++ 基本概念总结

1.命名空间。 namespace,C++中的关键字,它是为了解决命名冲突而出现的。在大型项目中,不同的程序员可能会取相同的名字,在将代码结合在一起时会引发命名冲突。通过namespace可以定义命名空间,以区分不同人定义的相同变量、函数、类、typedef、#define等。 定义形式:namespace name { //variables,functions,classes }    ::,称为域解析操作符,在C++中用来指定要使用的命名空间    using,可以用这个关键字来声明命名空间。

qq_42642972的博客 1969

西工大C++课程笔记 程序中数据的表示

程序中的数据表示 1.数据类型 其中,在C++语言中字符型数据和整型数据之间可以通用。 2.常量(constant) 2.1字面常量(literal constant) 整型常量 浮点型常量 字符常量 转义字符表示字符常量 字符串常量 2.2符号常量 #define 标识符 常量 3.变量 即程序运行期间其值可以改变的量 3.1 变量的使用...

dutmathjc的博客 322

C++的概念总结

C++概念总结,概念,对象的引用,构造函数,析构函数,虚函数,纯虚函数,函数重载,等等的概念总结!!!

C++数的表示

二进制B 八进制O 十进制D 十六进制H / 0x十六进制 十进制数转换成R进制数:整数部分除基取余,上右下左;小数部分乘基取整,上左下右。 浮点数的阶用一种称为移码的编码表示方法,方便对阶。阶的编码称为阶码(阶用移码表示的01序列) [E]移=偏置常数+E,偏置常数为2n-1或2n-1-1。 int→float:不溢出、可能舍去(int的有效位数比float多,...

1382

c++概念复习总结

C++基本概念总结,可以用来复习c++基本概念,帮助大家快速复习c++基本概念。

中科蓝讯蓝牙开发:从源码到固件的自动化构建链路解析

本文详细解析了中科蓝讯AB530X蓝牙芯片从源码到最终固件的完整自动化构建链路。通过剖析prebuild.bat、GCC编译、postbuild.bat等关键环节,阐述了资源打包、配置生成、代码编译与固件合成的全过程,并重点介绍了如何实现一键编译与自动下载,为开发者高效进行嵌入式蓝牙开发提供清晰指南。

weixin_29193259的博客 121

C++第三章:程序中数据的表示

一、程序中数据的表示 (1)C++中常见的数据类型(********) 注:红色为C++特有的类型。 (2)基本类型数据的内存长度和数值范围 (3)整形 C++中整型分为长整型(long int)、基本整型(int)和短整型(short int)。 注:一般来说数据占用存储空间short<=int<=long。 补充:整形数据的溢出处理 定...

qq_66136291的博客 1761

告别Python依赖!用C++编译PaddleOCR打造轻量级本地OCR工具(附模型选择与性能对比)

本文详细介绍了如何将PaddleOCR从Python迁移到C++平台,打造高性能、低资源占用的本地OCR工具。通过对比Python和C++实现的性能差异,展示了C++在冷启动时间、内存占用和部署便捷性上的显著优势。文章还提供了模型选择、编译配置和优化技巧等实用指南,帮助开发者轻松构建轻量级OCR解决方案。

weixin_28717467的博客 256

学习C++第二课

这是学习C++的第二节课,老师讲的好快,再总结一遍吧。

林一百二十八的博客 336

cJSON库用完后内存泄漏?手把手教你正确使用cJSON_Delete和free释放资源

本文深入解析cJSON库的内存管理机制,重点解决使用后的内存泄漏问题。通过详细讲解cJSON_Delete和free的正确使用方法,帮助开发者在处理JSON数据时有效释放资源,避免内存泄漏。特别适用于嵌入式系统和资源受限环境,提升开发效率和系统稳定性。

weixin_30808693的博客 418

怎么定位K8s容器中运行的JAVA程序OOM异常(一)

一.前置环境 1. 运行在k8s集群上的Pod服务(Java程序) 2. MAT分析工具 二.利用Jmap工具导出Heap Dump 1.执行命令进入pod容器 kubectl exec -itn {namespace} {pod}} sh 2.利用jmap生成java程序的Dump文件 jps | grep {jar} ./jmap -dump:live,format=b,file=haep.hprof 8 3.利用k8s命令导出Dump文件到本地 kubectl cp -n

计算科学 3013

C++ Lambda表达式详解

Lambda表达式概述 Lambda表达式是现代C++在C ++ 11和更高版本中的一个新的语法糖 ,在C++11、C++14、C++17和C++20中Lambda表达的内容还在不断更新。 lambda表达式(也称为lambda函数)是在调用或作为函数参数传递的位置处定义匿名函数对象的便捷方法。通常,lambda用于封装传递给算法或异步方法的几行代码 。本文主要介绍Lambda的工作原理以及使用方法。 Lambda表达式定义 Lambda表达式示例 Lambda有很多叫法,有Lambda表达式、Lambda

一起加油~ 8万+

ISO15118-20证书结构关系解读(7.3.2.1)

本文主要讲述ISO15118-20:2022标准所有证书结构的关联关系,目的是为后续基于ISO15118-20车桩通讯及PNC充电等提供基础支撑。 本文所有的证书关系图全部来源于ISO15118-20:2022标准规范,在后续的讲解过程会将图的摘取出处给提供出来,便于后期文章和标准对应起来解读。

weixin_40900932的博客 3184

Cpp入门基础

定义命名空间,需要使⽤到namespace关键字,后⾯跟命名空间的名字,然后接⼀对{}即可,{}中 即为命名空间的成员。命名空间中可以定义变量/函数/类型等。namespace本质是定义出⼀个域,这个域跟全局域各⾃独⽴,不同的域可以定义同名变量,所以下 ⾯的rand不在冲突了。C++中域有函数局部域,全局域,命名空间域,类域;域影响的是编译时语法查找⼀个变量/函数/ 类型出处(声明或定义)的逻辑,所有有了域隔离,名字冲突就解决了。

2401_86658278的博客 5134

RK3568平台(USB篇)USB Gadget 驱动

USB 设备驱动,按照设备端关联的 USB 控制器 是工作在 主模式 还是 从模式,分为 USB 设备主机侧驱动 (主模式),或者 USB 设备从机侧驱动 (从模式)。同时,工作在 主模式 的 USB 控制器,称为 USB 主机控制器 (UHC: USB Host Controller),工作在 从模式 的 USB 控制器,称为 USB 设备控制器 (UDC: USB Device Controller)。有的 USB 控制器,只能工作在 主模式 或 从模式 中的某一种;

weixin_49303682的博客 1438

【Coppeliasim|轨迹规划(三)】机械臂逆解

文章目录一些设置导航点设置添加连接用于碰撞的设置代码实现终端输出 一些设置 导航点设置 关于如何添加设置 dummy 的细节建议参考官方手册,这里不再赘述。 添加连接用于碰撞的设置 按照序号点击(一个是机械臂,一个是所有的物体除了机械臂): 代码实现 getMatrixShiftedAlongZ=function(matrix,localZShift) local m={} for i=1,12,1 do m[i]=matrix[i] end

【人工智障 | 计算鸡视觉 | 机器孩】 1万+

C++ Lambda表达式

在C++11和更高版本中,Lambda表达式(通常称为Lambda)是一种在被调用的位置或作为参数传递给函数的位置定义匿名函数对象(闭包)的简便方法。Lambda通常用于封装传递给算法或异步函数的少量代码行。Lambda表达式是C++11中一个较为重要的特性,其来源于函数式编程的概念,也是现代编程语言的一个特点。下文将记录和简述Lambda表达式中的基本概念和用法。

Ccccxc的博客 5180

【异常】OpenClaw提示异常 1302:您的账户已达到速率限制,请您控制请求频率

摘要:系统返回1302错误码提示"账户已达到速率限制",表明请求频率超过服务阈值。主要原因是并发请求数达上限或请求过于密集。解决方案包括:降低并发请求量、引入请求队列机制平滑流量,或根据服务规则提升账户权益等级以获取更高并发额度。建议优先优化请求频率控制策略,避免触发系统限流机制。

奶爸的编程之路,也就一周冷个三天 1145

Cpp || lambda 表达式

lambda表达式的使用注意方式

Template Code 2588

android 蓝牙通讯demo

android 下蓝牙通讯demo,实现了发现蓝牙,使能蓝牙,通过蓝牙发送消息。

jdk-8u144-linux-x64.tar.gz.

该资源为搭建Linux系统Java环境用,资源的后缀为tar.gz格式的压缩包

【C++篇】C++11:lambda表达式

本文介绍了C++11中lambda表达式的语法特性及其底层实现原理。首先对比了传统排序方法(函数指针和仿函数)的不足,指出lambda表达式作为匿名函数能简化代码并提升可读性。详细解析了lambda的语法结构,包括捕获列表、参数列表、mutable修饰符和返回值类型等组成部分,重点说明了不同捕获方式的区别和使用场景。最后通过反汇编分析揭示了lambda的底层实现原理:编译器将其转换为仿函数类,重载operator()运算符来实现函数功能。lambda表达式既保持了语法简洁性,又具备与仿函数相同的性能表现。

Surplus886的博客 923

ssm框架搭建

这个是一个在idea上成功跑起来的ssm框架项目,保存在这里方便以后使用直接下载

探索C++的响应式编程:深入了解REACT-CPP

探索C++的响应式编程:深入了解REACT-CPP 在现代软件开发中,异步编程和事件驱动是不可或缺的部分,尤其是对于高并发系统而言。今天,我们为您介绍一个专注于提升C++编程中事件循环体验的开源库——REACT-CPP。这不仅是一个工具,更是一种让您的C++应用轻盈起舞的秘密武器。 项目介绍 REACT-CPP,一个利用C++11引入的Lambda函数作为通知机制的事件循环库,一旦文件描述符或计时...

gitblog_00529的博客 1007

汉书HE8,好用的汇编代码编写工具

汉书HE8,好用的汇编代码编写工具早期编写汇编代码所用功能强大

上一篇: 线性回归模型中的最小二乘法线性求解(Least Square Method)
下一篇: C++一些基本概念总结【面向过程篇】——函数
code_caq
博客等级 码龄11年 112粉丝 58原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值