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++版本使用了函数来实现相同功能。
总之,虽然两种语言都支持面向过程的编程,但是在设计、结构和功能上有着本质的区别。