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

相关推荐
anew___4 小时前
蜂鸣器播放音乐——让 Arduino 唱出旋律
c++·stm32·单片机·嵌入式硬件·c
stolentime5 小时前
洛谷P10515 转圈题解
c++·算法·数学建模·贪心算法
tdtsmt6 小时前
穿戴硬件量产工艺实录:天地通电子智能手表主板 SMT 贴片案
c++
m0_7345717610 小时前
深入理解C++ 析构函数<一>基本概念
开发语言·c++
t-think11 小时前
C++ string 类(上)—— string类初识与常用接口详解
开发语言·c++
cpp_learners11 小时前
C++ 实现责任链模式(Chain of Responsibility):从一堆 if-else 到可插拔的处理管道
开发语言·c++·责任链模式
郝学胜_神的一滴11 小时前
C++11 工程级应用 12:编译期类型魔法,干掉重复与臃肿的代码
c++·visual studio
David猪大卫12 小时前
【C++修炼】哈希表的实现
数据结构·c++·笔记·学习·算法·哈希算法·散列表
广州山泉婚姻12 小时前
列表初始化:C++11全新初始化体系
c++·人工智能
莫生灬灬12 小时前
灵码 LingBuilder:用中文写代码,确定性生成真实 C++ 工程(开源)
c++·开源·mfc