C++.变量与数据类型

news2025/5/13 3:42:20

C++变量与数据类型

  • 1. C++变量与数据类型
    • 1.1 基本数据类型
    • 1.2 复合数据类型
    • 2.1 定义方式
    • 2.2 常量类型
    • 3.1 数据类型修饰符
    • 3.2 存储类修饰符
    • 3.3 类访问修饰符
    • 4.1 算术运算符
    • 4.2 关系运算符
    • 4.3 逻辑运算符
    • 4.4 赋值运算符
    • 4.5 条件运算符
    • 4.6 位运算符
  • 5. 总结
    • 5.1 变量与数据类型
    • 5.2 常量
    • 5.3 修饰符类型
    • 5.4 运算符

1. C++变量与数据类型

1.1 基本数据类型

C++ 提供了多种基本数据类型,这些类型是构建复杂数据结构的基础。以下是几种常见的基本数据类型及其特点:

  • 整数类型

    • int:用于表示整数,通常占用 4 个字节,取值范围为 ([-2^{31}, 2^{31}-1]。例如:
      int age = 25;
      
    • short:短整数类型,通常占用 2 个字节,取值范围为 ([-2^{15}, 2^{15}-1]。适用于需要节省内存的场景:
      short count = 100;
      
    • long:长整数类型,通常占用 4 个字节(在 64 位系统中可能为 8 个字节),取值范围为 ([-2^{31}, 2^{31}-1] 或 ([-2^{63}, 2^{63}-1]:
      long distance = 1000000;
      
    • long long:更长的整数类型,占用 8 个字节,取值范围为 ([-2^{63}, 2^{63}-1],适合处理大整数:
      long long bigNumber = 1234567890123456789;
      
  • 浮点类型

    • float:单精度浮点数,通常占用 4 个字节,有效数字为 7 位。例如:
      float pi = 3.1415926f;
      
    • double:双精度浮点数,通常占用 8 个字节,有效数字为 15-16 位。适用于需要更高精度的场景:
      double e = 2.718281828459045;
      
    • long double:扩展精度浮点数,占用字节数根据实现而变化,通常为 12 或 16 个字节,精度更高:
      long double bigPi = 3.14159265358979323846;
      
  • 字符类型

    • char:用于表示单个字符,通常占用 1 个字节,取值范围为 ([-128, 127] 或 ([0, 255],取决于编译器是否支持扩展字符集。例如:
      char letter = 'A';
      
    • wchar_t:宽字符类型,通常占用 2 或 4 个字节,用于表示 Unicode 字符。例如:
      wchar_t wideChar = L'你';
      
    • char16_t:16 位 Unicode 字符,占用 2 个字节。例如:
      char16_t unicodeChar = u'你';
      
    • char32_t:32 位 Unicode 字符,占用 4 个字节。例如:
      char32_t wideUnicodeChar = U'你';
      
  • 布尔类型

    • bool:用于表示布尔值,只有两个可能的值:truefalse。通常占用 1 个字节。例如:
      bool isTrue = true;
      

1.2 复合数据类型

除了基本数据类型,C++ 还提供了复合数据类型,用于表示更复杂的数据结构。这些类型包括数组、指针、结构体、类等。

  • 数组

    • 数组是一组相同类型的数据元素的集合,通过索引访问每个元素。例如:
      int arr[5] = {
             1, 2, 3, 4, 5}; // 定义一个包含 5 个整数的数组
      arr[2] = 10; // 修改数组的第三个元素
      
  • 指针

    • 指针是一个变量,用于存储另一个变量的内存地址。指针的类型与其指向的变量类型相关。例如:
      int value = 10;
      int* ptr = &value; // 定义一个指向 int 类型的指针,并将其指向 value 的地址
      *ptr = 20; // 通过指针修改 value 的值
      
  • 结构体

    • 结构体是一种用户自定义的数据类型,可以包含多个不同类型的数据成员。例如:
      struct Person {
             
          string name;
          int age;
          float height;
      };
      Person person1 = {
             "Alice", 25, 1.65}; // 创建一个 Person 类型的变量
      
    • 类是 C++ 中的核心概念,用于实现面向对象编程。类可以包含数据成员和成员函数。例如:
      class Car {
             
      public:
          string brand;
          int year;
          void display() {
             
              cout << "Brand: " << brand << ", Year: " << year << endl;
          }
      };
      Car myCar;
      myCar.brand = "Toyota";
      myCar.year = 2020;
      myCar.display(); // 调用成员函数
      ```# 2. 常量
      

2.1 定义方式

在 C++ 中,常量的定义方式主要有以下几种:

  • 使用 const 关键字

    • const 是一种类型修饰符,用于定义常量。它可以在定义变量时指定该变量的值不能被修改。例如:
      const int MAX_SIZE = 100; // 定义一个整数常量
      const double PI = 3.1415926; // 定义一个双精度浮点常量
      const char* GREETING = "Hello, World!"; // 定义一个字符串常量
      
      使用 const 定义的常量必须在定义时初始化,且其值在程序运行过程中不能被修改。
  • 使用 #defin

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

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

相关文章

Ubuntu 22.04.5 LTS 基于 kubesphere 安装 cube studio

Ubuntu 22.04.5 LTS 基于 kubesphere 安装 cube studio 前置条件 已经成功安装 kubesphere v4.3.1 参考教程: https://github.com/data-infra/cube-studio/wiki/%E5%9C%A8-kubesphere-%E4%B8%8A%E6%90%AD%E5%BB%BA-cube-studio 1. 安装基础依赖 # ubuntu安装基础依赖 apt insta…

1.短信登录

1.0 问题记录 1.0.1 redis 重复 token 问题 每次用户登录时&#xff0c;后端会创建一个新的 token 并存入 Redis&#xff0c;但之前登录的 token 还没有过期。这可能会导致以下问题&#xff1a; 1. Redis 中存在大量未过期但实际已不使用的 token2. 同一用户可能有多个有效 …

Linux-Ubuntu安装Stable Diffusion Forge

SD Forge在Win上配置起来相对简单且教程丰富&#xff0c;而在Linux平台的配置则稍有门槛且教程较少。本文提供一个基于Ubuntu24.04发行版&#xff08;对其他Linux以及SD分支亦有参考价值&#xff09;的Stable Diffusion ForgeUI安装配置教程&#xff0c;希望有所帮助 本教程以N…

MixTeX - 支持CPU推理的多模态LaTeX OCR

文章目录 一、项目概览相关资源核心特性技术特点 二、安装三、使用说明环境要求 四、版本更新五、当前限制 一、项目概览 MixTeX是一款创新的多模态LaTeX识别小程序&#xff0c;支持本地离线环境下的高效CPU推理。 无论是LaTeX公式、表格还是混合文本&#xff0c;MixTeX都能轻…

23、DeepSeek-V2论文笔记

DeepSeek-V2 1、背景2、KV缓存优化2.0 KV缓存&#xff08;Cache&#xff09;的核心原理2.1 KV缓存优化2.2 性能对比2.3 架构2.4多头注意力 &#xff08;MHA&#xff09;2.5 多头潜在注意力 &#xff08;MLA&#xff09;2.5.1 低秩键值联合压缩 &#xff08;Low-Rank Key-Value …

【算法专题十一】字符串

文章目录 1. leetcode.14.最长公共前缀1.1 题目1.2 思路1.3 代码 2. leetcode.5.最长回文字串2.1 题目2.2 思路2.3 代码 3. leetcode.67.二进制求和3.1 题目3.2 思路3.3 代码 4. leetcode.43.字符串相乘4.1 题目4.2 思路4.3 代码 1. leetcode.14.最长公共前缀 1.1 题目 题目链…

美化IDEA注释:Idea 中快捷键 Ctrl + / 自动注释的缩进(避免添加注释自动到行首)以及 Ctrl + Alt + l 全局格式化代码的注释缩进

打开 Settings 界面&#xff0c;依次选择 Editor -> Code Style -> Java&#xff0c;选择 Code Generation&#xff0c; 取消 Line comment at first column 和 Block comment at first column 的勾选即可&#xff0c; 1、Line comment at first column (行注释在第一列…

赛灵思 XCZU11EG-2FFVC1760I XilinxFPGAZynq UltraScale+ MPSoC EG

XCZU11EG-2FFVC1760I 是 Zynq UltraScale MPSoC EG 系列中性能最强的器件之一&#xff0c;集成了四核 ARM Cortex-A53 应用处理器、双核 Cortex-R5 实时处理器与 Mali-400 MP2 GPU&#xff0c;并结合了 653,100 个逻辑单元与丰富的片上存储资源&#xff0c;可满足高性能计算、A…

Android Camera HAL v3 and Video4Linux 2

《小驰行动派的知识星球》 ———————————————— 推荐阅读&#xff1a; 关于博主 《小驰Camera私房菜》小册目录 采用v4l2loopback来实现 虚拟Camera Camera基础及一些基本概念 Android Camera 学习路线 | 个人推荐 Android Camera开发系列&#xff08;干货满满&a…

基于pyqt的上位机开发

目录 安装依赖 功能包含 运行结果 安装依赖 pip install pyqt5 pyqtgraph pyserial 功能包含 自动检测串口设备&#xff0c;波特率选择/连接断开控制&#xff0c;数据发送/接收基础框架&#xff0c;实时绘图区域&#xff08;需配合数据解析&#xff09; ""&q…

CentOS 7 系统下安装 OpenSSL 1.0.2k 依赖问题的处理

前面有提到过这个openssl的版本冲突问题&#xff0c;也是在这次恢复服务器时遇到的问题&#xff0c;我整理如下&#xff0c;供大家参考。小小一个软件的安装&#xff0c;挺坑的。 一、问题 项目运行环境需要&#xff0c;指定PHP7.0.9这个版本&#xff0c;但是‌系统版本与软件…

vue修改了node_modules中的包,打补丁

1、安装patch npm i patch-package 安装完成后&#xff0c;会在package.json中显示版本号 2、在package.json的scripts中增加配置 "postinstall": "patch-package" 3、执行命令 npx patch-package 修改的node_modules中的包的名称 像这样 npx patch-packag…

[matlab]private和+等特殊目录在新版本matlab中不允许添加搜索路径解决方法

当我们目录包含有private,或者时候matlab搜索目录不让添加&#xff0c;比如截图&#xff1a; 在matlab2018以前这些都可以加进去后面版本都不行了。但是有时候我们必须要加进去才能兼容旧版本matlab库&#xff0c;比如mexopencv库就是这种情况。因此我们必须找到一个办法加进去…

OpenTelemetry 介绍

文章目录 1. 概述什么是OpenTelemetry发展历史与背景主要特点与优势2. 核心概念追踪(Tracing)指标(Metrics)日志(Logs)行李(Baggage)3. 主要组件API层SDK层数据收集器(Collector)导出器(Exporters)OTLP(OpenTelemetry Protocol)4. 集成方式语言支持(SDK)自动与手动插桩常见框…

【连载14】基础智能体的进展与挑战综述-多智能体系统设计

基础智能体的进展与挑战综述 从类脑智能到具备可进化性、协作性和安全性的系统 【翻译团队】刘军(liujunbupt.edu.cn) 钱雨欣玥 冯梓哲 李正博 李冠谕 朱宇晗 张霄天 孙大壮 黄若溪 在基于大语言模型的多智能体系统&#xff08;LLM-MAS&#xff09;中&#xff0c;合作目标和合…

blender云渲染指南2025版

一、云渲染核心概念 Blender云渲染是将本地渲染任务迁移到云端服务器集群的技术&#xff0c;通过分布式计算实现效率提升100倍以上的解决方案&#xff0c;其核心逻辑是&#xff1a;用户上传Blender项目文件至【渲染101】等云平台&#xff0c;云端调用高性能服务器&#xff08;…

Mysql-OCP PPT课程讲解并翻译

#跳过介绍&#xff0c;直接从干货开始记录 第一章 安装mysql windows安装

加速项目落地(Trae编辑器)

目录 vscode安装python支持 vscode常用插件 Trae编辑器 两个界面合成 补充&#xff08;QT开发的繁琐&#xff09; AI编程哪家强&#xff1f;Cursor、Trae深度对比&#xff0c;超详细&#xff01; - 知乎 Trae兼容vscode的插件&#xff0c;我们可以先在vscode里面装好再一…

配置 Web 服务器练习

一、要求 1.通过https://ip 可以访问到网站首页 2.通过 https://ip/private/ 实现用户访问控制&#xff0c;仅允许已经添加的 tom&#xff0c;jerry 能够访问到 private 子路径的界面 3.通过 https://ip/vrit/ 实现能够访问到将系统 /nginx/virt 目录下的网页文件&#xff0…

Python程序,输入IP,扫描该IP哪些端口对外是开放的,输出端口列表

#!/usr/bin/env python # -*- coding: utf-8 -*-""" IP端口扫描程序 输入IP地址&#xff0c;扫描该IP哪些端口对外是开放的&#xff0c;输出端口列表 """import socket import sys import concurrent.futures import ipaddress from tabulate im…