C++—C++程序基础

news/2024/12/5 8:23:30/

文章目录

  • 1 数据类型
    • 1.1 基本数据类型
    • 1.2 字面值常量
    • 1.3 左值和右值
    • 1.4 引用与指针
  • 2 基本输入输出
    • 2.1 输出
    • 2.2 输入
  • 3 函数
    • 3.1 内联函数
    • 3.2 函数的重载

1 数据类型

1.1 基本数据类型

在C++中,除了C语言中的int,char,float,double,void这些基本数据类型外,还增加了以下几种数据类型

类型类型名字节数
bool布尔型1
wchar_t宽字符类型2
char16_tUnicode类型2
char32_tUnicode类型4

其中布尔型只有两种取值,分别是真(1)和假(0)。

1.2 字面值常量

对于字面值常量,有如下规则

字面值常量类型默认类型其他
整型int后缀加“u/U”表示无符号int型,加后缀“l/L”表示long int型,后缀加“ll/LL”表示long long int型
浮点型double后缀加“f/F”表示float型,后追加“l/L”表示long double型

除了上面介绍的,还有字符型和字符串型。字符型字面值用一对单引号括起来,字符串型字面值用一对双引号括起来。字符型和字符串型字面值,前缀加“u”表示为“char16_t”类型。前缀加“U”表示为“char32_t”类型。前缀加“L”表示宽字符型“wchar_t”。加前缀“u8”表示字符串字面值编码采用UTF-8格式。

1.3 左值和右值

左值实质上是内存的位置,左值可以出现在赋值号的左边或者右边。
右值实质是数值,右值可以出现在赋值号右边,但是不能出现在赋值号左边。

1.4 引用与指针

可以通过&x来声明对一个变量的引用,其中x是要引用的变量。引用的实质并不是复制,而是给要引用的变量起了一个别名。引用在定义时就必须被初始化。这里看一个简单的示例

int x = 10;
int &i = x;   // 引用x

此外,必须用对象对引用进行初始化,不能是字面值常量或者表达式。引用提供了与指针相同的功能,但是比指针更加直观,更加容易理解。引用与指针的不同,主要有以下几点

  • 不存在空引用。引用必须连接到一个合法的对象。
  • 一旦引用被初始化为一个对象,就不能再引用另一个对象。指针可以指向另一个对象。
  • 引用必须在创建时被初始化。指针在创建时可以不进行初始化(但是在使用指针前必须对指针进行初始化)。

2 基本输入输出

在C语言中,基本的输入输出函数可以通过包含stdio的标准I/O库进行处理。stdio的标准I/O库在C++中也可以使用,但是在C++中使用的更多的是iostream的I/O流库实际上就是每个输入输出设备输入/出的字节(数据)。使用 C++的标准I/O流库时,必须包括下面两个头文件

#include<iostream>
#include<iomanip>

iostream文件提供基本的输入/输出功能,iomanip 文件提供格式化的功能。

2.1 输出

输出数据时的语法如下

int a = 10;
cout << a;   // 输出a的值

需要换行时,使用下面的语句

cout << endl;
int a = 10;
cout << a << endl;   // 输出a的值

endl的功能是换行,并清除输出缓冲区。

2.2 输入

输入的写法与输出类似

cout >> a;

3 函数

在C++中,函数的定义,声明和调用与C语言相同,这里就不再赘述了。

3.1 内联函数

在定义函数时,在最前面加上inline,函数就变成了内联函数。内联函数的基本形式为

inline 函数返回类型 函数名 (参数列表)

内联函数与其他函数的不同在于,在调用普通函数时,会有一个压栈和出栈的过程。但是在调用内联函数时,编译器会将内联函数的函数体直接放在被调用的地方,省去了调用普通函数时栈记录的创建和释放的开销。通过一个图简单阐述一下内联函数和普通函数在调用时的不同

内联函数与普通函数在被调用时的区别

使用内联函数时应该注意以下几个问题

  • 在一个文件中定义的内联函数不能在另一个文件中使用。它们通常放在头文件中共享。
  • 内联函数应该简洁,只有几个语句,如果语句较多,不适合定义为内联函数。
  • 内联函数体中不能有循环语句、if 语句或 switch 语句,否则函数定义时即使有 imnline关键字,编译器也会把该函数作为非内联函数处理。
  • 内联函数要在函数被调用之前声明。

3.2 函数的重载

C++中,当有一组函数完成相似功能时,函数名允许重复使用,编译器根据函数输入参数的个数或类型来判断调用哪一个函数,这就是函数的重载。对于重载函数,只要它的输入参数中参数个数或类型不同,就视为不同的函数。如果找不到输入参数形式对应的函数,编译器就会报错。

在使用重载函数时需要注意以下几点

  • 重载函数必须是功能相似的函数。
  • 函数的形参变量名不同不能作为函数重载的依据。

http://www.ppmy.cn/news/865979.html

相关文章

好用的性能分析工具–VisualVM

http://zorufa876.iteye.com/blog/625649 最近在学TDA(Thread Dump Analyzer)的时候&#xff0c;发现一款很好用的查看JVM的工具–VisualVM&#xff0c;这个工具是Sun在JDK1.6 Update7之后的版本中推出的,就放在bin目录下面&#xff0c;惭愧的是我竟然一直都没发现。 简单说…

年仅21岁,干掉6位诺贝尔奖得主,被誉为科学界最强杀手,却惨被人骂成一个笑话...

全世界只有3.14 % 的人关注了 爆炸吧知识 在刚过去的国庆假期期间&#xff0c;超模君总是在不经意间看到许多诡异的小视频&#xff01;而一提起充满诡异气息的视频&#xff0c;《走近科学》这档节目堪称经典&#xff01; 然而在去年&#xff0c;经典科普电视节目《走近科学》迎…

Java Word工具类--之Gradle项目创建

废话不多说&#xff0c;导入如下2个依赖&#xff0c;冲冲冲...... maven或者gradle依赖下载中心 https://mvnrepository.com/ implementation group: com.lowagie, name: itext, version: 2.1.7implementation group: com.lowagie, name: itext-rtf, version: 2.1.7 工具…

玩玩两个简单的python的web框架 flask、fastapi

IDEA连接远程解释器&#xff0c;本地代码编辑无法代码提示 一、Flask入门使用 官网 其它参考 注意 1.这里使用linux 192.168.72.126上远程解释器,需要/usr/bin/pip3 install flask&#xff0c;host参数不要使用localhost/127.0.0.1,即只监听本地的访问&#xff0c;会导致wind…

docker版jxTMS使用指南:本地数据总线

本文讲解4.4版jxTMS中的本地数据总线&#xff0c;整个系列的文章请查看&#xff1a;docker版jxTMS使用指南&#xff1a;4.4版升级内容 docker版本的使用&#xff0c;请查看&#xff1a;docker版jxTMS使用指南 4.0版jxTMS的说明&#xff0c;请查看&#xff1a;4.0版升级内容 …

ImageMagick图片转PDF

高能效图像处理工具&#xff0c;支持上百种图像格式&#xff01;&#xff01; 工具&#xff1a;ImageMagick 官网&#xff1a;https://imagemagick.org/ 中文站&#xff1a;http://www.imagemagick.com.cn/ 使用ImageMagick的创建&#xff0c;编辑&#xff0c;撰写&#xf…

java pdf转 图片

我也是从网上找的&#xff0c;原文没找到&#xff0c;写个文章祭奠下原博主&#xff0c;勿怪勿怪 依赖 <dependency><groupId>org.apache.pdfbox</groupId><artifactId>pdfbox</artifactId><version>2.0.12</version></depende…

这几款图片转PDF软件推荐给你

PDF格式的文件因为拥有保密性好、兼容性强的特点&#xff0c;所以一直受到各大公司的喜爱。那大家在工作时会使用到PDF文件吗&#xff1f;我就经常使用&#xff0c;而且有时为了方便照片的储存与传输&#xff0c;还会将图片转换为PDF格式。那大家知道图片转PDF格式的方法吗&…