当前位置:实例文章 » 其他实例» [文章]C语言 与 C++ 通讯录对比实现(附带源码)

C语言 与 C++ 通讯录对比实现(附带源码)

发布人:shili8 发布时间:2025-01-05 01:42 阅读次数:0

**C语言与C++通讯录对比实现**

在软件开发领域,C语言和C++都是两种非常流行的编程语言。虽然它们都支持面向过程的编程,但是在设计、结构和功能上有着本质的区别。下面,我们将通过一个通讯录例子来比较C语言与C++的实现。

**1. 通讯录基本信息**

首先,让我们定义一下通讯录的基本信息:

* 名字*电话号码* 地址这些信息将作为我们的通讯录的核心数据结构。

**2. C语言实现**

在C语言中,我们可以使用结构体来表示通讯录中的基本信息。下面是C语言版本的通讯录实现:

c#include <stdio.h>
#include <stdlib.h>

// 定义通讯录结构体typedef struct {
 char name[50];
 char phone[20];
 char address[100];
} Contact;

int main() {
 // 创建通讯录数组 int n =10;
 Contact* contacts = (Contact*)malloc(n * sizeof(Contact));

 // 初始化通讯录数据 for (int i =0; i < n; i++) {
 printf("请输入第%d个联系人的信息:
", i +1);
 scanf("%s %s %s", contacts[i].name, contacts[i].phone, contacts[i].address);
 }

 // 输出通讯录数据 for (int i =0; i < n; i++) {
 printf("第%d个联系人的信息:
", i +1);
 printf("名字:%s
", contacts[i].name);
 printf("电话:%s
", contacts[i].phone);
 printf("地址:%s
", contacts[i].address);
 }

 //释放内存 free(contacts);

 return0;
}


在这个C语言版本中,我们使用了结构体`Contact`来表示通讯录中的基本信息。我们创建了一个名为`contacts`的数组,用于存储通讯录数据。然后,我们使用循环来初始化和输出通讯录数据。

**3. C++实现**

在C++中,我们可以使用类来表示通讯录中的基本信息。下面是C++版本的通讯录实现:

cpp#include <iostream>
#include <string>

// 定义通讯录类class Contact {
public:
 std::string name;
 std::string phone;
 std::string address;

 // 构造函数 Contact(std::string n, std::string p, std::string a) : name(n), phone(p), address(a) {}

 // 输出通讯录数据 void print() {
 std::cout << "名字:" << name << "
";
 std::cout << "电话:" << phone << "
";
 std::cout << "地址:" << address << "
";
 }
};

int main() {
 // 创建通讯录数组 int n =10;
 Contact* contacts = new Contact[n];

 // 初始化通讯录数据 for (int i =0; i < n; i++) {
 std::cout << "请输入第" << i +1 << "个联系人的信息:
";
 std::string name, phone, address;
 std::cin >> name >> phone >> address;
 contacts[i] = Contact(name, phone, address);
 }

 // 输出通讯录数据 for (int i =0; i < n; i++) {
 contacts[i].print();
 }

 //释放内存 delete[] contacts;

 return0;
}


在这个C++版本中,我们使用了类`Contact`来表示通讯录中的基本信息。我们创建了一个名为`contacts`的数组,用于存储通讯录数据。然后,我们使用循环来初始化和输出通讯录数据。

**4. 对比**

通过比较C语言与C++版本的通讯录实现,我们可以看出两种语言在设计、结构和功能上有着本质的区别:

* C语言版本使用了结构体来表示通讯录中的基本信息,而C++版本使用了类。
* C语言版本使用了指针来创建和操作通讯录数组,而C++版本使用了新式的容器类(如`std::array`或`std::vector`)。
* C语言版本使用了循环来初始化和输出通讯录数据,而C++版本使用了函数来实现相同功能。

总之,虽然两种语言都支持面向过程的编程,但是在设计、结构和功能上有着本质的区别。

其他信息

其他资源

Top