C语言到C++的桥梁:基本数据类型与表达方式的学习之旅(一)

1 基本数据与表达式

  • 1.1概述

  • 1.2C++语言的字符集与词汇

  • 1.3C++语言的基本数据类型与存储形式

  • 1.4数据对象与访问

  • 1.5表达式

  • 1.6数据输入与输出

通过本章内容的学习,帮助读者理解字符集与词汇,从而掌握基本数据类型与表达式。

建立项目

笔者这里使用VS2022建立项目。步骤和建立C语言程序项目并没有什么不同。步骤见下:

打开VS2022之后,点击文件->新建->项目,

选择空项目之后,进行下一步

为项目填写名称和选择存储位置之后就可以点击创建了

刚创立的新项目是无法直接写代码的,这里需要再创建一个源文件(在文件夹中找到源文件,选择"添加"中的"新建项"),然后为源文件命名就行了。

新探秘

了解类

class类对函数封装是C++相比较C突出的特点之一,这里对类的使用进行演示。

问题如下:

在笔者看来,使用class类需要搞明白两个方面:对象的属性(需要获取的数据)和对象的功能(需要展示的东西)。以此题为例,就可以设置一个圆类,数据成员为半径,成员函数为置半径值、求圆半径、求周长、求面积。

代码见下:

c 复制代码
#include <iostream>

using namespace std;

class Circle
{
	double radius;
public:
	void Set_Radius(double r) { radius = r; }
	double Get_Radius() { return radius; }
	double Get_Girth() { return 2 * 3.14 * radius; }
	double Get_Area() { return  3.14 * radius * radius; }
};

int main()
{
	Circle A, B;
	A.Set_Radius(6.23);
	cout << "A.Radius = " << A.Get_Radius() << endl;
	cout << "A.Girth = " << A.Get_Girth() << endl;
	cout << "A.Area = " << A.Get_Area() << endl; 
	B.Set_Radius(10.24);
	cout << "B.Radius = " << B.Get_Radius() << endl;
	cout << "B.Girth = " << B.Get_Girth() << endl;
	cout << "B.Area = " << B.Get_Area() << endl;
	return 0;
}

枚举

在这之前一直都是听说这种类型,但是从来不知道如何使用,今天终于明白了。

枚举作为一种结构类型,是用户自定义的。它的关键字是enum,需要注意的是定义的时候声明就像数学集合中的列举法一样,需要把所有的可能包含其中,数据的输出为其在括号中的下标。

代码见下:

c 复制代码
#include <iostream>

using namespace std;

enum colour { red, green, yellow, blue, white };

int main()
{
	colour c;
	c = red;
	cout << "red = " << c << endl;
	c = yellow;
	cout << "yellow = " << c << endl; 
	c = white;
	cout << "white = " << c << endl;
	return 0;
}

运行结果见下:

零碎

'B'+1输出是整型数据,运算过程为字符B的ASCII码+1。这里的解释是B是字符型的数据,占用1字节,1是整型数据,占用4字节。按照占用内存大的计算,所以最后结果为整型数据。

疑云

\b作为退格,没有理解其含义。

比如:

c 复制代码
#include <iostream>

using namespace std;

int main()
{
	cout << "A\t" << "A\b\bB" << endl;
	return 0;
}

第二个A为什么没有另起一行,光标明明停留在了第二个A的前面,此时endl换行应该会使A另起一行的,结果却没有。

相关推荐
劉宇雁43 分钟前
C++ ASCII 3D无尽跑酷游戏
c++·游戏·3d
杜子不疼.1 小时前
【C++ 在线五子棋对战】- 会话管理模块实现
开发语言·c++
有点。1 小时前
C++深度优先搜索(DFS)的概念(一)
开发语言·c++·深度优先
旖-旎1 小时前
《LeetCode 978 最长湍流子数组 || LeetCode 139 单词拆分》
c++·算法·leetcode·动态规划
aaPIXa6221 小时前
C++大型项目模块化拆分实战记录
开发语言·c++
石山代码2 小时前
C++23 新特性在 CLion 中的实战体验
开发语言·c++·c++23
在线OJ的阿川2 小时前
仿muduo库实现高并发服务器
linux·服务器·c++
坚定学代码2 小时前
C++ SOLID 原则(上):单一职责、开闭原则与里氏替换
c++
ysa0510302 小时前
【板子】欧拉序
c++·笔记·算法·深度优先·图论
不负岁月无痕2 小时前
STL -- C++ 红黑树封装 Map 和 Set
java·c语言·开发语言·c++·面试