文章目录

  • 前言
    • 1. main() 函数
    • 2. 变量赋值
    • 3. cin和cout的一些细节
    • 4. 基本类型运算
    • 5. 内存占用
    • 6. 引用
    • 7. 常量


前言

在这里插入图片描述

  • C++ 语法的学习整理,作为个人总结使用。

1. main() 函数

#include <iostream>   //使用输入输出流库(cin,cout);头文件语句不需要加分号:;
using namespace std;   //使用标准库中的一些常用功能,不需要每次都写上std::这个前缀int main() {   //C++程序的入口cout << "Hello, World!" << endl;   //cout是C++中的输出流对象,能把数据输出到屏幕上;<<是插入运算符,表示把右边的内容插入到输出流中;endl表示换行return 0;   //程序结束,返回0表示成功
}
  • 使用std::
#include <iostream>   //使用输入输出流库(cin,cout);头文件语句不需要加分号:;int main() {   //C++程序的入口std::cout << "Hello, World!" << std::endl;   //cout是C++中的输出流对象,能把数据输出到屏幕上;<<是插入运算符,表示把右边的内容插入到输出流中;endl表示换行return 0;   //程序结束,返回0表示成功
}

2. 变量赋值

#include <iostream>
using namespace std;int main() {int myNumber;   //整数类型变量myNumber = 42;   //赋值42cout << "myNumber:" << myNumber << endl;int userAge;   //整数类型变量cout << "请输入你的年龄:";   //提示信息cin >> userAge;   //cin是C++中的输入流对象,负责从键盘读取数据;>>是提取运算符,表示把用户输入的内容提取出来,然后存储到userAge里cout << "userAge:" << userAge << endl;return 0;
}
  • 其他变量类型
#include <iostream>
using namespace std;int main() {float price = 9.99;   //浮点数变量double PI = 3.14159;   //double能存储更多位的小数char grade = 'A';   //字符变量string name = "Alice";   //字符串变量cout << "price:" << price << endl;cout << "PI:" << PI << endl;cout << "grade:" << grade << endl;cout << "name:" << name << endl;return 0;
}

3. cin和cout的一些细节

  • cin无法读入空格
#include <iostream>
#include <string>
using namespace std;int main() {string fullName;cout << "请输入你的全名:";getline(cin, fullName);   //getline读取输入,遇到换行符停止,而cin遇到空格也会停止cout << "fullName:" << fullName << endl;return 0;
}
  • cout输出格式化
#include <iostream>
#include <iomanip>   //使用iomanip库,用于格式化输出
using namespace std;int main() {float price1 = 19.99, price2 = 5.49, price3 = 12.30;cout << "价格列表:" << endl;//setw(10)设置输出的宽度为10个字符;fixed强制浮点数以固定小数位数的形式输出;setprecision(2)设置输出为两位小数cout << "price1:" << setw(10) << fixed << setprecision(2) << price1 << endl;cout << "price2:" << setw(10) << fixed << setprecision(2) << price2 << endl;cout << "price3:" << setw(10) << fixed << setprecision(2) << price3 << endl;return 0;
}

4. 基本类型运算

  • 基本运算符:
    – 加法:+
    – 减法:-
    – 乘法:*
    – 除法:/
    – 取余:%
    – 自增:++
    – 自减:- -
  • 运算符优先级:
    – 乘法,除法,取余高于加法和减法
    – 给运算加上 括号( ) 提升运算优先级
#include <iostream>
using namespace std;int main() {int a = 1, b = 2, c = 3, d = 4, result1, result2;//没有括号的运算result1 = a + b * c - d;   //按照优先级顺序进行运算cout << "没有括号的结果: " << result1 << endl;//有括号的运算result2 = (a + b) * (c - d);  //使用括号改变优先级cout << "有括号的结果: " << result2 << endl;return 0;
}

5. 内存占用

  • 内存单位之间的关系:
    – 1字节 (B) = 8位 (bits)
    – 1千字节 (KB) = 1024字节 (B),210 = 1024
    – 1兆字节 (MB) = 1024千字节 (KB)
    – 1吉字节 (GB) = 1024兆字节 (MB)
    – 1太字节 (TB) = 1024吉字节 (GB)
  • 数据类型的内存占用:使用 sizeof() 运算符查看
#include <iostream>
using namespace std;int main() {cout << "char 类型占用: " << sizeof(char) << " 字节" << endl;cout << "int 类型占用: " << sizeof(int) << " 字节" << endl;cout << "float 类型占用: " << sizeof(float) << " 字节" << endl;cout << "double 类型占用: " << sizeof(double) << " 字节" << endl;cout << "bool 类型占用: " << sizeof(bool) << " 字节" << endl;cout << "指针类型占用: " << sizeof(int*) << " 字节" << endl;return 0;
}

6. 引用

  • 引用是变量的别名。通过引用,可以直接操作原来的变量,而不是它的副本。
  • 声明引用时,必须立刻用一个已有的变量初始化它。
  • 引用初始化后,就不能再让它指向其他变量。
  • 引用只是一个别名,它没有自己的内存地址,而是和原变量共享同一个地址。
#include <iostream>
using namespace std;int main() {int a = 100;int b = a;   //普通复制int& ref_a = a;   //引用//修改 b,a 不会改变b = 200;cout << "修改 b 后,a 的值: " << a << endl;//修改 ref_a,a 会改变ref_a = 300;cout << "修改 ref_a 后,a 的值: " << a << endl;return 0;
}

7. 常量

  • 常量的值在设置后是不能改变的。
#include <iostream>
using namespace std;int main() {const int value = 100;   //使用const关键字定义一个常量cout << "value: " << value << endl;//修改常量会导致编译错误value = 200;return 0;
}
  • 指向常量的指针:指向常量的指针可以指向不同的对象,但不能通过该指针修改它指向的对象。
#include <iostream>
using namespace std;int main() {const int value = 100;   //使用const关键字定义一个常量const int* ptr = &value;   //指向常量的指针cout << "value: " << *ptr << endl;//通过指针修改常量的值会导致编译错误*ptr = 50;return 0;
}
  • 常量指针:指针本身是常量,一旦初始化,它就不能指向其他的对象,但可以通过它修改指向的对象的值。
#include <iostream>
using namespace std;int main() {int value = 100;   //变量int* const ptr = &value;   //常量指针cout << "value: " << *ptr << endl;//修改指针指向的对象的值*ptr = 50;cout << "value: " << *ptr << endl;//修改指针指向的对象会导致编译错误int b = 200;ptr = &b;return 0;
}
  • C++11 引入了 constexpr 关键字,用于定义在编译时就能确定值的常量表达式
#include <iostream>
using namespace std;constexpr int sum(int x,int y) {return x + y;
}int main() {constexpr int result = sum(5,4);   //在编译时就能确定值cout << "result: " << result << endl;return 0;
}

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

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

相关文章

使用nginx反向代理kkfile

这篇说一下我解决的思路和方式哈&#xff0c;不一定适用于大家&#xff0c;可以做个参考比如我们的系统服务是http://10.63.25.35:80&#xff0c;而我们的文件服务是在10.63.25.37:8012上&#xff0c;正常不使用代理的话&#xff0c;我们前端调用后端接口&#xff0c;后端调用k…

【低成本扩容】动态扩容实战指南

面对扩容操作时&#xff0c;下面这种操作是否也会迷惑你&#xff1f;下面来为大家解惑~size_t newcapacity 2*_capacity > (_size len)?2*_capacity:(_sizelen); //len为即将插入的字符串有效字符个数//_size为当前字符串有效字符个数//_capacity为当前容量大小//newcapa…

Product Hunt 每日热榜 | 2025-08-14

1. Autumn 标语&#xff1a;为AI初创公司简化的Stripe服务 介绍&#xff1a;Autumn帮助AI初创公司通过只需三个API调用来定价、计量和控制使用情况。基于Stripe搭建&#xff0c;它可以在一个地方管理订阅、使用情况和访问权限。无需复杂的webhooks或后端逻辑&#xff0c;非常…

Scrapy + Django爬虫可视化项目实战(二) 详细版

系列文章 Scrapy + Django爬虫可视化项目实战(一)_django scrapy-CSDN博客 实现技术 Scrapy Django Echarts 引言 可视化部分需要读者具备一定的Django基础!!! 上一个文章我们已经实现了爬取景点的数据,那么接下来就是根据爬取到的数据进行可视化 一、环境搭建 (一) 创…

选择式与生成式超启发算法总结

这里写目录标题Selection HHGeneration HHGPHH示例存在大量针对特定问题设计的启发式算法&#xff0c;近年来学术界提出了一个关键问题&#xff1a;如何选择最合适的启发式方法。这一问题推动了超启发式&#xff08;hyper-heuristic&#xff09;方法的研究发展。超启发式是一种…

NetBIOS 设置

在 Windows 系统中,WINS (Windows Internet Name Service) 和 NetBIOS 紧密相关,主要用于 NetBIOS 名称解析(将计算机名转换为 IP 地址)。WINS 是一个动态数据库,类似于 DNS,但专门用于 NetBIOS 名称解析,适用于早期 Windows 网络(如 Windows NT/2000/XP)。 1. 查看 N…

vue2 + SimpleMindMap 制作思维导图

vue2 SimpleMindMap 制作思维导图 该代码包含SimpleMindMap已知的所有功能&#xff0c;有需要的小伙伴可自行copy&#xff0c;框架使用el-ementui。其中有些图标是阿里巴巴矢量图的图片&#xff0c;可自行进行替换。保姆级教程 以下是vue文件&#xff1a; <template><…

Discord x Pulsar: 使用 Pulsar、Flink 和 Iceberg 搭建流式机器学习平台

本文整理自 Discord 机器学习工程师 David Christle 在 Pulsar Summit NA 上的演讲内容&#xff0c;一起来看 Discord 是如何基于 Pulsar 实现兼顾安全和个性化功能的实时流式机器学习平台的&#xff5e;1. 背景Discord 是一个实时⾳视频通信平台&#xff0c;⽀持⽂本/语⾳/视频…

【数据结构入门】二叉树(2)

目录 1.二叉树遍历顺序 1.1 前序&#xff08;先根&#xff09;遍历 1.2 中序&#xff08;中根&#xff09;遍历 1.3 后序&#xff08;后根&#xff09;遍历 1.4 层序遍历 1.5 深度优先遍历&广度优先遍历 2.二叉树的遍历 2.1 前根遍历&#xff08;递归&#xff09; …

【电机参数】电压、电流、转速标幺化推算过程

【电机参数】电压、电流、转速标幺化推算过程 文章目录[TOC](文章目录)前言一、标幺化目的——优化计算二、Q15与标幺化的关系三、标幺值计算1.电压标幺值2.电流标幺值3.转速标幺值四、参考资料总结前言 一、标幺化目的——优化计算 不同物理量的量纲和数值范围差异巨大&#…

v-scale-scree: 根据屏幕尺寸缩放内容

&#x1f90d; 前端开发工程师、技术日更博主、已过CET6 &#x1f368; 阿珊和她的猫_CSDN博客专家、23年度博客之星前端领域TOP1 &#x1f560; 牛客高级专题作者、打造专栏《前端面试必备》 、《2024面试高频手撕题》、《前端求职突破计划》 &#x1f35a; 蓝桥云课签约作者、…

linux设备驱动之字符设备驱动

一、cdev结构体‌成员/功能‌‌说明‌‌相关操作函数/宏‌‌kobj‌内嵌的kobject对象&#xff0c;用于Linux设备模型管理&#xff0c;实现引用计数和sysfs接口kobject_init()‌owner‌指向拥有该结构体的模块指针&#xff08;通常为THIS_MODULE&#xff09;&#xff0c;防止模块…

★CentOS:MySQL数据备份

一、cp 命令备份特点&#xff1a;优点&#xff1a;备份恢复数据快&#xff1a;直接复制文件&#xff0c;无需进行数据转换和复杂的处理&#xff0c;因此备份恢复速度非常快缺点&#xff1a;需要停止数据库服务&#xff0c;灵活性差&#xff0c;占用空间大&#xff0c;可移植性差…

Python代码规范与静态检查(ruff/black/mypy + pyproject.toml + Makefile)自动化工具链介绍

文章目录**1. 核心工具的作用****(1) black&#xff1a;代码格式化工具****(2) ruff&#xff1a;代码质量检查工具****(3) mypy&#xff1a;静态类型检查工具****2. pyproject.toml&#xff1a;统一配置中心****示例配置**&#xff08;pyproject.toml&#xff09;&#xff1a;*…

软件需求管理过程详解

需求管理过程需求管理是软件工程和系统开发中的核心过程&#xff0c;它确保项目始终围绕正确、稳定且可追溯的需求进行。在复杂系统开发中&#xff0c;需求往往动态变化&#xff0c;需求管理通过系统化的方法控制变更、维护版本、建立追溯关系&#xff0c;从而降低项目风险、保…

MySQL性能优化实战指南:从入门到精通的完整优化体系

MySQL性能优化实战指南&#xff1a;从入门到精通的完整优化体系&#x1f680; 前言&#xff1a;在当今数据驱动的时代&#xff0c;MySQL作为世界上最流行的开源关系型数据库&#xff0c;其性能优化能力直接决定了应用系统的响应速度和用户体验。本文将从多个维度深入探讨MySQL优…

KingbaseES主备读写分离集群安装教程

首先我们先要找数据库集群安装软件和脚本。这里我事先安装一台单机。 [rootlocalhost zip]# mkdir -p /home/kingbase/software [rootlocalhost zip]# scp -r * /home/kingbase/software/ #安装软件和脚本在单机版本的/opt/Kingbase/ES/V9/ClientTools/guitools/DeployTools/z…

electron程序适配loongArch64

一、原始项目 1.原始程序适配arm&#xff0c;x86国产linux设备;新增需求适配loongArch64麒麟v10sp1。 2.原始devDependencies "devDependencies": {"electron": "^17.2.0","electron-builder": "^23.0.3",}二、可能遇到的问…

窗口系统(windowing system)的架构思考

我想做一个通用窗口系统&#xff0c;窗口、控件等&#xff0c;一切都抽象成树形结构的层叠矩形块&#xff0c;可支持半透明、模糊等混合选项&#xff0c;那么每个窗口是不是需要一块存储区&#xff1f;我之前的代码为了计算模糊&#xff0c;还不止一块&#xff0c;要三块。那么…

极简工具箱:安卓工具箱合集

软件介绍 极简工具箱是一个安卓工具箱合集软件&#xff1b;软件支持安卓。 它支持将近 400 个实用功能&#xff0c;支持将近 40 款单机游戏&#xff0c;提供 140 多个实用网站导航&#xff0c;包括电子书导航、学习导航、设计导航、产品经理导航、大数据导航、文档格式转换、…