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另起一行的,结果却没有。

相关推荐
潼心1412o1 小时前
C++初阶(长期更新)第6讲:类和对象(下)
开发语言·c++·算法
-森屿安年-2 小时前
按身高排序
c++·算法
(Charon)3 小时前
【C++面试】vector底层原理:扩容、拷贝移动与迭代器失效
c++·面试
朔北之忘 Clancy3 小时前
青少年软编等考七级题解目录
开发语言·c++·青少年编程·gesp·csp·信奥赛·noi
汉克老师4 小时前
GESP2026年9月认证C++七级( 第一部分选择题(8~15题)精讲
c++·gesp·小学生·学c++编程
Mr_Macallon4 小时前
C++回顾(基础)(01)
c语言·开发语言·c++·学习
如意猴4 小时前
【C++】007 C/C++ 内存管理机制、malloc与new的区别及模板初阶
java·c++·算法
朝朝辞暮i4 小时前
C++ 第 32 课:main()、rclcpp::init()、spin()、shutdown()
开发语言·c++·算法
汉克老师4 小时前
GESP2026年9月认证C++一级( 第三部分编程题(1、新龟兔赛跑))精讲
c++·gesp·小学生·学c++编程
沫璃染墨5 小时前
《从零入门Linux系统篇(五十七):线程篇·十——生产者消费者模型进阶:从环形缓冲区到POSIX信号量》
linux·运维·服务器·开发语言·c++·系统架构·信号处理