C++ 简介、基本语法、数据类型、变量、常量

news2024/9/21 12:34:15

一、C++简介:

        

        C++是一种静态类型的、编译式的、通用的、大小写敏感的、不规则的编程语言。支持过程化编程、面向对象编程和泛型编程。C++是C的一个超集,任何合法的C程序都是合法的C++程序。

面向对象开发的四大特性:

◆ 封装(Encapsulation):封装是将数据和方法组合在一起,对外部隐藏实现细节,只公开对外提供的接口。提高安全性、可靠性和灵活性。

◆ 继承(Inheritance):继承是从已有类中派生出新类,新类具有已有类的属性和方法,并且可以扩展或修改这些属性和方法。提高代码的复用性和可扩展性。

◆ 多态(Polymorphism):多态是指同一种操作作用于不同的对象,可以有不同的解释和实现。它可以通过接口或继承实现,提高代码的灵活性和可读性。

◆ 抽象(Abstraction):抽象是从具体的实例中提取共同的特征,形成抽象类或接口,以便于代码的复用和扩展。抽象类和接口可以让程序员专注于高层次的设计和业务逻辑,而不必关注底层的实现细节。

二、C++基本语法:

对象:具有状态和行为。

类:定义为描述对象行为/状态的模版/蓝图。

方法:方法表示一种行为,在方法中写入逻辑、操作数据、执行的动作。类可以包含多个方法。

即时变量:每个对象都有其独特的即时变量。对象的状态是由即时变量的值创建的。

#include <iostream> //定义头文件

using namespace std; //命名空间

int main() //主函数,程序从这里开始执行

{

cout << "Hello World"; // 输出 Hello World

return 0;

}

C++中,分号是语句的结束符,即每个语句必须以分号结束。

C++标识符是用来标识变量、函数、类、模块、任何其他用户自定义项目的名称。标识符是以字母A~或a~z或下划线_开始,后面跟零个或多个字母、下划线和数字(0~9))。标识符内不允许出现标点字符。

C++关键字:

三字符组是用来标识另一个字符的三个字符序列,又称为三字符序列。三字符序列是以两个问号开头。C++标准允许把某些字符指定为三字符序列。常见的三字符序列:

三字符组

替换

??=

#

??/

\

??'

^

??(

[

??)

]

??!

|

??<

{

??>

}

??-

~

在C++中,空格用于描述空白符、制表符、换行符和注释。空格分隔语句的各个部分。

C++支持单行注释和多行注释://一般用于单行注释;/* .....*/一般用于多行注释。

三、C++数据类型:

C++基本数据类型:

类型

关键字

布尔型

bool

字符型

char

整型

int

浮点型

float

双浮点型

double

无类型

void

宽字符型

wchar_t

各种变量类型在内存中存储值需要占用的内存:

类型

范围

char

1 个字节

-128 到 127 或者 0 到 255

unsigned char

1 个字节

0 到 255

signed char

1 个字节

-128 到 127

int

4 个字节

-2147483648 到 2147483647

unsigned int

4 个字节

0 到 4294967295

signed int

4 个字节

-2147483648 到 2147483647

short int

2 个字节

-32768 到 32767

unsigned short int

2 个字节

0 到 65,535

signed short int

2 个字节

-32768 到 32767

long int

8 个字节

-9,223,372,036,854,775,808 到 9,223,372,036,854,775,807

signed long int

8 个字节

-9,223,372,036,854,775,808 到 9,223,372,036,854,775,807

unsigned long int

8 个字节

0 到 18,446,744,073,709,551,615

float

4 个字节

精度型占4个字节(32位)内存空间,+/- 3.4e +/- 38 (~7 个数字)

double

8 个字节

双精度型占8 个字节(64位)内存空间,+/- 1.7e +/- 308 (~15 个数字)

long long

8 个字节

双精度型占8 个字节(64位)内存空间,表示 -9,223,372,036,854,775,807 到 9,223,372,036,854,775,807 的范围

long double

16 个字节

长双精度型 16 个字节(128位)内存空间,可提供18-19位有效数字。

wchar_t

2 或 4 个字节

1 个宽字符

32位系统与64位系统的存储大小的差别:

四、C++变量类型:

C++基本变量类型:

类型

描述

bool

布尔类型,存储值 true 或 false,占用 1 个字节。

char

字符类型,用于存储 ASCII 字符,通常占用 1 个字节。

int

整数类型,通常用于存储普通整数,通常占用 4 个字节。

float

单精度浮点值,用于存储单精度浮点数。单精度是这样的格式,1 位符号,8 位指数,23 位小数,通常占用4个字节。

double

双精度浮点值,用于存储双精度浮点数。双精度是 1 位符号,11 位指数,52 位小数,通常占用 8 个字节。

void

表示类型的缺失。

wchar_t

宽字符类型,用于存储更大范围的字符,通常占用 2 个或 4 个字节。

五、C++变量作用域:

局部变量:在函数或一个代码块内部声明的变量。

形式参数:在函数参数的定义中声明的变量。

全局变量:在所有函数外部声明的变量。

局部作用域:在函数内部声明的变量具有局部作用域,局部变量只能在函数内部访问,在函数每次被调用时被创建,在函数执行完后被销毁。

全局作用域:在所有函数和代码块之外声明的变量具有全局作用域,全局变量可以被程序中的任何函数访问,在程序开始时被创建,在程序结束时被销毁。

块作用域:在代码块内部声明的变量具有块作用域,块作用域变量只能在代码块内部访问,在代码块每次被执行时被创建,在代码块执行完后被销毁。

类作用域:在类内部声明的变量具有类作用域,类作用域变量可以被类的所有成员函数访问。类作用域变量的生命周期与类的生命周期相同。

#include <iostream>

using namespace std;

int i = 3; // 全局变量声明

int main ()

{

int j = 10; // 局部变量声明

cout << j;

return 0;

}

#include <iostream>

class MClass {
public:
    static int class_var;  // 类作用域变量
};

int MClass::class_var = 30;

int main() {
    std::cout << "类变量: " << MClass::class_var << std::endl;
    return 0;
}

六、C++常量:

常量,又称字面量。常量是固定值。程序执行期间不会改变。

6.1、整数常量:

前缀指定基数:0x或0X表示十六进制,0表示八进制,不带前缀默认为十进制。整数常量可以带后缀,U代表无符号整数,L代表长整数。

6.2、浮点常量:

浮点常量有整数部分、小数点、小数部分和指数部分组成。可以用小数形式或者指数形式表示浮点常量。

6.3、布尔常量:

true、false。

6.4、字符常量:

字符常量是括在单引号中。

转义序列码:

转义序列

含义

\\

\ 字符

\'

' 字符

\"

" 字符

\?

? 字符

\a

警报铃声

\b

退格键

\f

换页符

\n

换行符

\r

回车

\t

水平制表符

\v

垂直制表符

\ooo

一到三位的八进制数

\xhh . . .

一个或多个数字的十六进制数

6.5、字符串常量:

字符串常量是括在双引号“”中。

常量的定义方式:#define、const关键字。常量定义为大写字母形式。

#define identifier value

const type variable = value;

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

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

相关文章

【转】OAK-D双目相机进行标定及标定结果说明

编辑&#xff1a;OAK中国 首发&#xff1a;A. hyhCSDN 喜欢的话&#xff0c;请多多&#x1f44d;⭐️✍ 内容来自用户的分享&#xff0c;如有疑问请与原作者交流&#xff01; ▌前言 Hello&#xff0c;大家好&#xff0c;这里是OAK中国&#xff0c;我是助手君。 近期在CSDN刷…

系列十、ThreadLocal的使用场景

一、ThreadLocal的使用场景 &#xff08;1&#xff09;使用日期工具类&#xff0c;当用到SimpleDateFormat时&#xff0c;使用ThreadLocal保证线程安全&#xff1b; &#xff08;2&#xff09;全局存储用户信息&#xff08;用户信息存入ThreadLocal&#xff0c;那么当前线程在任…

SSM客户管理系统CRM开发mysql数据库web结构java编程计算机网页源码eclipse项目

一、源码特点 SSM 客户管理系统CRM是一套完善的信息系统&#xff0c;结合springMVC框架完成本系统&#xff0c;对理解JSP java编程开发语言有帮助系统采用SSM框架&#xff08;MVC模式开发&#xff09;&#xff0c;系统具有完整的源代码和数据库&#xff0c;系统主要采用B/S模…

五金零件经营小程序商城的效果如何

五金零件无论批发还是零售都有很高的需求度&#xff0c;传统消费者往往是线下门店寻找购买&#xff0c;但如今更多的客户选择线上消费&#xff0c;而商家们也选择线上开店拓展更广的客源及生意增长。 除了第三方平台进驻外&#xff0c;私域开店对商家来说也是一种方式。微信场…

【20年扬大真题】编写程序,功能是从键盘输入若干4位数字学号,然后输出学号中百位数字是3的学号 (输入0时结束循环)

【20年扬大真题】 编写程序&#xff0c;功能是从键盘输入若干4位数字学号&#xff0c;然后输出学号中百位数字是3的学号 &#xff08;输入0时结束循环&#xff09; #include<stdio.h> #define MaxSize 20 int BaiWei3(int x) {x x / 100;if (x % 10 3) {return 1;}els…

python中的exec()、eval()以及complie()

嗨喽~大家好呀&#xff0c;这里是魔王呐 ❤ ~! python更多源码/资料/解答/教程等 点击此处跳转文末名片免费获取 1.eval函数 函数的作用&#xff1a; 计算指定表达式的值。 也就是说它要执行的python代码只能是单个表达式&#xff08;注意eval不支持任何形式的赋值操作&…

iEnglish全国ETP大赛:教育游戏助力英语习得

“seesaw,abacus,sword,feather,frog,lion,mouse……”11月18日,经过3局的激烈较量,“以过客之名队”的胡玲、黄长翔、林家慷率先晋级“玩转英语,用iEnglish”第三届全国ETP大赛的16强,在过去的周末中,还有TIK徘徊者队、不负昭华队、温柔杀戮者队先后晋级。据悉,根据活动规则,在…

全民阅读营造良好氛围 助力培养孩子阅读习惯

日前,2023年全民终身学习活动周全国总开幕式在重庆举行,自2005年起,终身学习活动周已连续举办了18届,累计带动4亿多群众参与全民终身学习活动周,有效推进全面阅读。 随着全民阅读氛围的持续浓厚,阅读不再是语文学科的专项,不再是学校教育的专属,家庭、社会都在积极参与进来。尤…

多篇论文介绍-可变形卷积

01 具有双层路由注意力的 YOLOv8 道路场景目标检测方法 01 摘要: 随着机动车的数量不断增加&#xff0c;道路交通环境变得更复杂&#xff0c;尤其是光照变化以及复杂背景都会干扰目标检测算法的准确性和精度&#xff0c;同时道路场景下多变形态的目标也会给检测任务造成干扰&am…

飞书多维表格【单选】的排序规则

飞书多维表格的排序竟然不是根据拼音排的&#xff0c;而是根据单选的先后顺序进行排序的。

Mysql查看Binlog文件

前期准备 检查是否开启binlog mysql> SHOW VARIABLES LIKE log_bin; // 或者 mysql> SHOW VARIABLES LIKE log%;ON代表开启&#xff0c;OFF代表关闭。如为OFF需 开启 后才能查看&#xff0c;但只能查看开启之后时间点的。 查看binlog文件有哪些 一般yum安装的mysql…

left join查询耗时太慢,添加索引解决问题

背景 因为最近自己用的小app越用感觉加载越慢&#xff0c;以为是自己app开发逻辑出现问题了&#xff0c;结果才发现是自己很早以前的代码用到的是left join多表联查&#xff0c;以前因为数据少&#xff0c;所以没有感觉&#xff0c;现在数据量稍微一大&#xff0c;耗时就非常严…

Android跨进程传图片或者大数据(解决TransactionTooLargeException)

跨进程传图片方案 直接intent传bitmap使用文件读写intent传递自定义binder&#xff0c;binder中传递image使用网络传输 一、直接intent传bitmap 优势 使用简单 劣势 相关代码可能有侵入性&#xff0c;必须在四大组件中接收。 intent传递数据的总大小是1MB&#xff0c;其中…

Redis(哨兵模式)

哨兵模式的定义&#xff1a; 是Redis的一种高可用解决方案&#xff0c;通过运行多个Redis实例来监控主从Redis实例的状态&#xff0c;当主实例出现故障时&#xff0c;哨兵会自动选举一个从实例作为新的主实例&#xff0c;从而保证系统的高可用性。哨兵模式可以监控多个主从Red…

感恩三十载 再创新辉煌——中国音乐著作权协会成立30周年暨著作权集体管理制度实施30周年纪念大会在京召开

感恩三十载 再创新辉煌 2023年11月19日&#xff0c;中国音乐著作权协会成立30周年暨著作权集体管理制度实施30周年纪念大会在北京举行。中宣部副部长张建春&#xff0c;国际作者和作曲者协会联合会&#xff08;CISAC&#xff09;总干事甘迪奥龙&#xff08;Gadi Oron&#xff0…

【追求卓越02】数据结构--链表

引导 今天我们进入链表的学习&#xff0c;我相信大家对链表都很熟悉。链表和数组一样&#xff0c;作为最基础的数据结构。在我们的工作中常常会使用到。但是我们真的了解到数组和链表的区别吗&#xff1f;什么时候使用数组&#xff0c;什么时候使用链表&#xff0c;能够正确的选…

WPF实战项目十五(客户端):RestSharp的使用

1、在WPF项目中添加Nuget包&#xff0c;搜索RestSharp安装 2、新建Service文件夹&#xff0c;新建基础通用请求类BaseRequest.cs public class BaseRequest{public Method Method { get; set; }public string Route { get; set; }public string ContenType { get; set; } &quo…

sd-webui-controlnet代码分析

controlnet前向代码解析_Kun Li的博客-CSDN博客文章浏览阅读1.5k次。要分析下controlnet的yaml文件&#xff0c;在params中分成了4个部分&#xff0c;分别是control_stage_config、unnet_config、first_stage_config、cond_stage_config。其中control_stage_config对应的是13层…

Leo赠书活动-10期 【AIGC重塑教育 AI大模型驱动的教育变革与实践】文末送书

✅作者简介&#xff1a;大家好&#xff0c;我是Leo&#xff0c;热爱Java后端开发者&#xff0c;一个想要与大家共同进步的男人&#x1f609;&#x1f609; &#x1f34e;个人主页&#xff1a;Leo的博客 &#x1f49e;当前专栏&#xff1a; 赠书活动专栏 ✨特色专栏&#xff1a;…

好题分享(2023.11.12——2023.11.18)

目录 ​ 前情回顾&#xff1a; 前言&#xff1a; 题目一&#xff1a;《有效括号》 思路&#xff1a; 总结&#xff1a; 题目二&#xff1a;《用队列实现栈》 思路&#xff1a; 总结&#xff1a; 题目三&#xff1a;《用栈实现队列》 思路&#xff1a; 总结 &#x…