当前位置: 首页 > news >正文

【C++学习篇】:基础

文章目录

  • 前言
    • 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.lryc.cn/news/622918.html

相关文章:

  • ZKmall开源商城的数据校验之道:用规范守护业务基石
  • 中本聪思想与Web3的困境:从理论到现实的跨越
  • PyTorch生成式人工智能——使用MusicGen生成音乐
  • 新手向:Python异常处理(try-except-finally)详解
  • JVM垃圾回收器
  • 学习日志35 python
  • Python:如何在Pycharm中显示geemap地图?
  • 基于深度学习的老照片修复系统
  • k8sday08深入控制器(3/3)
  • Docker小游戏 | 使用Docker部署人生重开模拟器
  • K8S的ingress
  • 玩转云原生,使用k9s管理k8s集群和k3s集群
  • 如何在 MacOS 上安装 SQL Server
  • VS Code配置MinGW64编译ALGLIB库
  • 水分含量低、残留物少且紫外光谱纯净的生物溶剂推荐
  • python学习DAY43打卡
  • VScode 使用遇到的问题
  • 北京JAVA基础面试30天打卡11
  • MQ迁移方案
  • Linux软件编程:进程与线程(线程的传参、属性、通信(互斥锁、信号量))
  • 嵌入式硬件篇---电容本质
  • 【图像算法 - 15】智能行李识别新高度:基于YOLO12实例分割与OpenCV的精准检测(附完整代码)
  • Redis-plus-plus 安装指南
  • IOMMU的2级地址翻译机制及多级(2~5)页表查找
  • 区块链技术原理(14)-以太坊数据结构
  • 解决html-to-image在 ios 上dom里面的图片不显示出来
  • 一次性能排查引发的Spring MVC深度思考
  • 31 HTB Union 机器 - 中等难度
  • pytest介绍(python测试框架)(@pytest.mark.parametrize、@pytest.fixtures)
  • yolo neck特征融合 浅层特征深层特征