C++——简介、Hello World、变量常量、数据类型

news2025/1/10 12:02:54

个人简介

👀个人主页: 前端杂货铺
🙋‍♂️学习方向: 主攻前端方向,正逐渐往全干发展
📃个人状态: 研发工程师,现效力于中国工业软件事业
🚀人生格言: 积跬步至千里,积小流成江海
🥇推荐学习:🍍前端面试宝典 🍉Vue2 🍋Vue3 🍓Vue2/3项目实战 🥝Node.js🍒Three.js🍖数据结构与算法体系教程

🌕个人推广:每篇文章最下方都有加入方式,旨在交流学习&资源分享,快加入进来吧

C++基础篇

文章目录

  • C++基础篇
    • 前言
    • 一、扩展知识
      • 1、编译型语言和解释型语言
      • 2、C++ 代码的执行流程
    • 二、Hello World
    • 三、认识函数
    • 四、变量和数据类型
      • 1、变量和常量
      • 2、基本数据类型
    • 总结

前言

大家好,这里是前端杂货铺。

C++,即 C Plus Plus。它是一种计算机高级程序设计语言,由 C语言 扩展升级而产生。

C++ 既可以进行 C语言 的 过程化程序设计,又可以进行 以抽象数据类型为特点的基于对象的程序设计,还可以进行 以继承和多态为特点的面向对象的程序设计

C++ 擅长面向对象程序设计的同时,还可以进行基于过程的程序设计。 C++几乎可以创建任何类型的程序:游戏、设备驱动程序、HPC、云、桌面、嵌入式和移动应用等。 甚至用于其他编程语言的库和编译器也使用 C++ 编写。

由此可见,C++ 的应用领域是非常广泛的,并且其在计算机语言中也是属于大哥的地位,因此我们有必要进行 C++ 的入门学习!


一、扩展知识

1、编译型语言和解释型语言

编译型语言代表:C、C++

由编译器把整个源代码翻译成机器码,最终生成二进制文件,一次性 提交给计算机执行。

解释型语言代表:JavaScript、Python

由解释器将代码 逐行 解释成机器码,并交给计算机执行。

因此,在效率方面,编译型语言要高于解释型语言(如果你了解 FFmpeg.exe 和 FFmpeg.wasm,那么你肯定能认识到编译型语言的效率真的很高)。

2、C++ 代码的执行流程

在这里插入图片描述


二、Hello World

如何使用 C++ 语言编写一个最简单的程序 Hello World 呢?—— 我们可以借助 Visual Studio 更容易的实现(其安装与使用请自行查找资料,在此不做赘述)!

下面我们进入 梦开始的地方 —— Hello World!

  1. include<iostream> 意思是引入 iostream 库,即输入输出流库。
  2. using namespace std; 命名空间,用来限制标识符的各种可见范围。
  3. main() 即主函数,cout 输出,cin 输入。
#include<iostream>
using namespace std;

int main()
{
	cout << "Hello World!" << endl;
	// 等待键盘输入 
	cin.get();
}

在这里插入图片描述

我们还可以通过右键项目名-生成,创建出双击即可执行的 .exe 文件。

在这里插入图片描述

在这里插入图片描述


三、认识函数

和大多数编程语言一样,C++ 函数的基本使用也很简单,直接上代码。

main.cpp 文件

#include<iostream>
#include<string>
using namespace std;

void welcome();

int main()
{
	welcome();
	cin.get();
	cin.get();
}

welcome.cpp 文件

#include<iostream>
#include<string>
using namespace std;

// void声明 无返回值
void welcome()
{
	cout << "请输出你的姓名:" << endl;
	string name;
	cin >> name;
	cout << "Hello " << name << endl;
}

在这里插入图片描述


四、变量和数据类型

1、变量和常量

通过 #define 定义的常量为宏定义,但我们通常采用 const 定义常量,因为会更加安全。

作用域各大语言差别不大,C++ 可以通过命名空间实现在局部作用域中使用全局作用域下声明的与该局部作用域下相同的变量(如下面代码中的 number 变量)。

#include<iostream>
#include<string>
// 宏定义常量
#define PI 3.14
using namespace std;

// 全局变量 number
int number = 10;

int main()
{
	int a = 1, b = 2;
	cout << "a = " << a << ", b = " << b << endl;

	// 局部变量 number
	int number = 5;

	cout << "局部变量number = " << number << endl;
	cout << "全局变量number = " << ::number << endl;

	// 常量
	const float Pi = 3.14;

	cout << "PI = " << PI << endl;
	cout << "Pi = " << Pi << endl;
	cin.get();
}

在这里插入图片描述


2、基本数据类型

下面的代码中,包含对 整型、无符号整型、char 类型、bool 类型、浮点类型、字面值常量、类型转换的使用

  1. 无符号整型没有负数,所以当我们不需要负数的时候,可以把变量设置为无符号的,从而可以增大可用范围。
  2. 部分字符有特殊的含义,我们如果想在字符串中输出它们,就需要使用 \ 进行转义。
  3. 单个字符我们可以用 '' 包裹,但多个字符我们需要使用 "" 包裹使用。
  4. 不同数据类型时可以进行自动类型转换的,当赋值超出范围的时候,并不会报错,而是会进行精度的丢失,只保留剩余字节代表的数值。
#include<iostream>
using namespace std;

int main()
{
	// 短整型 2个字节 -32768 - 32767
	short a = 20;
	cout << "a = " << a << endl;
	cout << "a(short)的长度为:" << sizeof a << endl;

	// 整型 4个字节
	int a2 = 20;
	cout << "a2 = " << a2 << endl; 
	cout << "a2(int)的长度为:" << sizeof a2 << endl;

	// 长整型 4个字节
	long a3 = 20;
	cout << "a3 = " << a3 << endl;
	cout << "a3(long)的长度为:" << sizeof a3   << endl;
	
	// 8个字节
	long long a4 = 20;
	cout << "a4 = " << a4 << endl;
	cout << "a4(long long)的长度为:" << sizeof a4 << endl;

	// 无符号短整型 => 无负数 0 - 65535
	unsigned short s1 = 40000;
	cout << "s1 = " << s1 << endl;

	// 字符型
	char c = 65;
	cout << "c = " << c << endl;
	char c2 = (c + 1);
	cout << "c + 1 = " << c2 << endl;

	// 布尔型
	bool b1 = true;
	cout << "b1 = " << b1 << endl;
	cout << "b1(bool)的长度为:" << sizeof b1 << endl;

	// 浮点型
	float f = 2.5;
	cout << "f = " << f << endl;
	cout << "f(float)的长度为:" << sizeof f << endl;


	// 双精度型
	double d = 3.79E-23;
	cout << "d = " << d << endl;
	cout << "d(double)的长度为:" << sizeof d << endl;

	/* 字面值常量 */
	// 整型
	30;
	036L;
	0x1ELL;

	// 浮点类型
	3.14f;
	1.25L;

	// 字符类型
	',';
	'A';
	'2ss';
	"ABC";
	'\'';

	// 转义字符
	char tc = '\n';
	cout << "tc = " << tc << endl;
	
	cout << "Hello World!\t\"Hello C++!\"\n \?" << endl;

	// 布尔类型
	true;
	false;

	/* 赋值时自动类型转换 */
	// 整数值赋给 bool 变量
	bool btrans = 25;
	cout << "btrans = " << btrans << endl;

	// bool 类型的值赋给算数类型
	short strans = false;
	cout << "strans = " << strans << endl;

	// 浮点数赋值给整数类型
	int itrans = 3.14;
	cout << "itrans = " << itrans << endl;

	// 整数值赋值给浮点类型
	float ftrans = 3;
	cout << "ftrans = " << ftrans << endl;

	// 赋值超出整型范围
	unsigned short ustrans = 65536;
	cout << "ustrans = " << ustrans << endl;

	cin.get();
}

在这里插入图片描述


总结

本篇文章首先介绍了 编译型语言和解释型语言的区别C++ 代码的执行流程,之后我们使用 C++ 代码实现了第一个程序 Hello World!

然后我们初步认识了简单函数的使用,以及变量常量、基本数据类型的使用及一些注意事项。

对于运算符、流程控制语句等内容就不做讲解了,这些内容和 JS、Java 等语言基本上一模一样…

好啦,本篇文章到这里就要和大家说再见啦,祝你这篇文章阅读愉快,你下篇文章的阅读愉快留着我下篇文章再祝!


参考资料:

  1. 百度百科 · C++
  2. 2023最新版C++【作者:尚硅谷】

在这里插入图片描述


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

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

相关文章

idea编译报错(Maven项目)

idea编译报错 找不到符号 第一步&#xff1a;开启注解处理器 第二步&#xff1a;清理MVN&#xff0c;package并重新编译 第三步&#xff1a;重新导入项目&#xff1a;

本地开发环境请求服务器接口跨域的问题(vue的问题)

上面的这个报错大家都不会陌生&#xff0c;报错是说没有访问权限&#xff08;跨域问题&#xff09;。本地开发项目请求服务器接口的时候&#xff0c;因为客户端的同源策略&#xff0c;导致了跨域的问题。下面先演示一个没有配置允许本地跨域的的情况&#xff1a; 可以看到&…

【亲测有效】Win11 卸载MySQL5.7以及安装MySQL8.0.35

目录 一、卸载原来本地的mysql5.7 1.mysql服务部分 1.1停止mysql服务 1.2删除mysql服务 2.卸载 MySQL程序 3.残余文件的清理 3.1删除mysql安装的目录 3.2删除mysql数据存放的目录 3.3删除mysql自定义目录 4.清理注册表 5.删除环境变量配置 二、安装mysql8.0.35 1.…

Explain详解与索引最佳实践

Mysql安装文档参考&#xff1a;https://blog.csdn.net/yougoule/article/details/56680952 Explain工具介绍 使用EXPLAIN关键字可以模拟优化器执行SQL语句&#xff0c;分析你的查询语句或是结构的性能瓶颈 在 select 语句之前增加 explain 关键字&#xff0c;MySQL 会在查询…

全网第一篇教你怎么总结多线程知识

于「全景图」&#xff0c;我之前也有一直在构建&#xff0c;可是因为知识储备不够&#xff0c;确实很难构建出来。稍微了解过并发领域知识的人都知道&#xff0c;里面的知识点、概念多而散&#xff1a;线程安全、锁、同步、异步、阻塞、非阻塞、死锁、队列(为什么并发要跟队列扯…

2024年云服务器配置推荐,看看哪家便宜?

作为多年站长使市面上大多数的云厂商的云服务器都使用过&#xff0c;很多特价云服务器都是新用户专享的&#xff0c;本文有老用户特价云服务器&#xff0c;阿腾云atengyun.com有多个网站、小程序等&#xff0c;国内头部云厂商阿里云、腾讯云、华为云、UCloud、京东云都有用过&a…

Backtrader 文档学习-Strategy with Signals

Backtrader 文档学习-Strategy with Signals backtrader可以不通过重写策略的方式触发交易&#xff0c;尽管重写策略是首选通用的方式。 下面介绍通过使用信号也是可以实现交易触发的。 1.定义signal import backtrader as btdata bt.feeds.OneOfTheFeeds(datanamemydatana…

微信公众号使用后端代码接入开发指南

1. 部署到服务器一套后端服务 要求&#xff1a;外界通过get请求可以访问到该服务&#xff0c;并且该地址只返回文本&#xff1a;hello, this is handle view&#xff0c;这就是下面这段代码的意思 这段代码的意思就是服务匹配到/wx的get请求&#xff0c;返回文本hello, this …

【UE Niagara学习笔记】07 - 火焰的热变形效果

目录 效果 步骤 一、创建热变形材质 二、添加新的发射器 2.1 设置粒子材质 2.2 设置粒子初始大小 2.3 设置粒子持续生成 三、修改材质 四、设置粒子效果 在上一篇博客&#xff08;【UE Niagara学习笔记】06 - 制作火焰喷射过程中飞舞的火星&#xff09;的基础上继续…

机器学习之特征工程

一、背景 什么是特征&#xff1f;在机器学习中,特征是一个现象的个别可测量的属性或特征。让我们观察一束阳光&#xff0c;直接看的话&#xff0c;它是白光&#xff0c;但是我们使用三菱镜&#xff0c;它就是七种颜色的光。所以&#xff0c;选取的事物的特征不同&#xff0c;我…

能赚钱的GPT Store正式上线!如何将自己的 GPT 放到商店中?

等了两个月&#xff0c;OpenAI 的 GPT Store 今日凌晨终于上线&#xff01;上线 GPT Store 的同时&#xff0c;OpenAI 同步了最新的 GPTs 数据&#xff1a;截止到1月11日&#xff0c;用户已创建300万的GPTs&#xff01; GPTs 开发者可以通过 GPTs 来获利。OpenAI 将在今年第一季…

PLECS如何下载第三方库并导入MOSFET 的xml文件,xml库路径添加方法及相关问题

1. 首先xml库的下载&#xff0c;PLECS提供了一个跳转的链接。 https://www.plexim.com/download/thermal_models 2. 下载一个库&#xff08;以最后一个Wolfspeed为例&#xff0c;属于CREE的SiC MOSFET&#xff09; 下载这个就行&#xff0c;都包含了。不信自己可以试试再下载…

java物品检验管理系统Myeclipse开发mysql数据库web结构java编程计算机网页项目

一、源码特点 java Web 物品检验管理系统是一套完善的java web信息管理系统&#xff0c;对理解JSP java编程开发语言有帮助&#xff0c;系统具有完整的源代码和数据库&#xff0c;系统主要采用B/S模式开发。开发环境为 TOMCAT7.0,Myeclipse8.5开发&#xff0c;数据库为Mysq…

C++里main函数int main(int argc, char **argv)

C里main函数int main(int argc, char **argv), 这两个参数argc和argv分别是什么

免费申请eu.org域名,开启个人网站之旅

介绍 eu.org的免费域名注册服务是由OpenTLD B.V.提供的。相比于其他免费域名注册服务&#xff0c;eu.org的域名后缀更加独特。同时&#xff0c;eu.org的域名注册也比较简单&#xff0c;只需要填写一些基本信息&#xff0c;就可以获得自己的免费域名。 注册账号 点击进入登…

C#中的Abp项目发布后,将exe设置为开机自动启动

一.跳过登陆界面 1.win R,输入“regedit”进入注册表&#xff0c;点开“HKEY_LOCAL_MACHINE” 2.SOFTWARE–>Policies–>Microsoft–>Windows–>新建–>项–>Personalization,新建–>DWORD(32位&#xff09;&#xff0c;名字定位“NoLockScreen”,值设为…

【JaveWeb教程】(20) MySQL数据库开发之 基本查询、条件查询、聚合函数、分组查询、排序查询、分页查询 详细代码示例讲解

目录 1. 数据库操作-DQL1.1 介绍1.2 语法1.3 基本查询1.4 条件查询1.5 聚合函数1.6 分组查询1.7 排序查询1.8 分页查询1.9 案例1.9.1 案例一1.9.2 案例二 在上次学习的内容中&#xff0c;我们讲解了&#xff1a; 使用DDL语句来操作数据库以及表结构&#xff08;数据库设计&…

java通过HttpClient方式实现https请求的工具类(绕过证书验证)

目录 一、引入依赖包二、HttpClient方式实现的https请求工具类三、测试类 一、引入依赖包 引入相关依赖包 <!--lombok用于简化实体类开发--><dependency><groupId>org.projectlombok</groupId><artifactId>lombok</artifactId><option…

生骨肉冻干推荐测评|希喂、VE、百利、PR等多款热门生骨肉冻干测评

随着养猫的观念逐渐科学化&#xff0c;越来越多的铲屎官开始关注猫咪主食的健康和营养问题。 冻干因其模拟猫咪原始捕猎猎物模型配比、低温加工的特点&#xff0c;被认为是最符合猫咪饮食天性的选择。 相比传统的膨化猫粮&#xff0c;生骨肉冻干中的淀粉和碳水化合物添加较少…

Electron中调用dll

截止目前Electron的官方稳定版本已经更新到了28.1.1。我在创建Electron项目时用的28.0.0版本&#xff0c;后面在项目中有用到调用dll方法的需求&#xff0c;大致的实现就是将后端给的dll文件引入到项目中&#xff0c;安装ffi-napi依赖&#xff0c;然后进行使用。但是在Electron…