C++与C语言的区别是什么
发表于:2026-11-02 作者:千家信息网编辑
千家信息网最后更新 2026年11月02日,这篇"C++与C语言的区别是什么"文章的知识点大部分人都不太理解,所以小编给大家总结了以下内容,内容详细,步骤清晰,具有一定的借鉴价值,希望大家阅读完这篇文章能有所收获,下面我们一起来看看这篇"C++
千家信息网最后更新 2026年11月02日C++与C语言的区别是什么
这篇"C++与C语言的区别是什么"文章的知识点大部分人都不太理解,所以小编给大家总结了以下内容,内容详细,步骤清晰,具有一定的借鉴价值,希望大家阅读完这篇文章能有所收获,下面我们一起来看看这篇"C++与C语言的区别是什么"文章吧。
1. 结构体区别
1.1. 类型上不再需要struct关键字,直接用结构体名即可
#include#include using namespace std;struct MM{ char name[20]; int age;};int main(){ struct MM girl; MM mm;//C++中不需要struct关键字 return 0;}
1.2. C++结构体中允许函数存在
在结构体中声明,在结构体外实现,当然可以直接在结构体中实现
结构体中函数访问数据,是可以直接访问
学会调用,和数据成员方式时一样的
对象(结构体变量).成员
对象指针->成员
(*对象指针).成员
C++在没有写构造函数和权限限定的时候,用法和C语言的用法是一样
#include#include using namespace std;struct MM{ //属性 //数据成员 char name[20]; int age; //行为(方法) //成员函数 void print() { cout << name << "\t" << age << endl; } void printData();//在结构体中声明,在外面实现 int& getAge() { return age; }};//结构体名限定,就是告诉别人这个函数来自哪里void MM::printData(){ cout << name << "\t" << age << endl;}//结构体中的变量必须要通过结构体变量(结构体指针)访问//c++结构体中的函数访问属性,可以直接访问int main(){ struct MM girl = {"小芳",28}; MM mm = {"小丽",24};//C++中不需要struct关键字 girl.print(); (&mm)->printData(); MM* p = &mm; p->printData(); p->getAge() = 84; p->printData(); p->age = 1991; p->printData(); return 0;}
2. 动态内存申请
C语言的动态内存申请
malloc 不带初始化 ,calloc 带初始化,realloc 重新申请
free 释放
C++的动态申请
new(申请)和delete(释放)
单个变量内存申请
数组的动态申请
结构体内存申请
例子:单个变量内存申请和数组的动态申请
#include#include using namespace std;void testNoeMemory(){//申请不做初始化 int* pInt = new int; *pInt = 123; cout << *pInt << endl; char* pChar = new char; *pChar = 'A'; cout << *pChar << endl;//申请内存做初始化 ()给单个数据做初始化 int* pNum = new int(134); cout << *pNum << endl; delete pInt; pInt = nullptr; delete pChar; pChar = nullptr; delete pNum; pNum = nullptr;}void testArrayMerrmory(){ //一维数组 //1、不带初始化 //长度可以是h变量,只要值就可以 int* pInt = new int[3];//等效产生了 int pInt[3]的数组 char* pstr = new char[15]; strcpy_s(pstr, 15, "I love you"); cout << pstr << endl; //带初始化的 一堆数据用{} int* pNum = new int[3]{1, 2, 3}; for (int i = 0; i < 3; i++) { cout << pNum[i] << " "; } cout << endl; delete[] pNum; char* str = new char[20]{'A', 'B', '\0'}; cout << str << endl; delete[] str; str = nullptr; str = new char[20]{"Ilove you"}; cout << str << endl; delete[] str; str = nullptr; delete[] pInt;//数组的指针 不需要大小 //释放只有两种形式 delete 指针 delete [] 指针 //delete [][] p 没有这种写法 pInt = nullptr;}int main(){ testNoeMemory(); return 0;}
例子:结构体内存申请
#include#include using namespace std;void testNoeMemory(){//申请不做初始化 int* pInt = new int; *pInt = 123; cout << *pInt << endl; char* pChar = new char; *pChar = 'A'; cout << *pChar << endl;//申请内存做初始化 ()给单个数据做初始化 int* pNum = new int(134); cout << *pNum << endl; delete pInt; pInt = nullptr; delete pChar; pChar = nullptr; delete pNum; pNum = nullptr;}void testArrayMerrmory(){ //一维数组 //1、不带初始化 //长度可以是h变量,只要值就可以 int* pInt = new int[3];//等效产生了 int pInt[3]的数组 char* pstr = new char[15]; strcpy_s(pstr, 15, "I love you"); cout << pstr << endl; //带初始化的 一堆数据用{} int* pNum = new int[3]{1, 2, 3}; for (int i = 0; i < 3; i++) { cout << pNum[i] << " "; } cout << endl; delete[] pNum; char* str = new char[20]{'A', 'B', '\0'}; cout << str << endl; delete[] str; str = nullptr; str = new char[20]; cout << str << endl; delete[] str; str = nullptr; delete[] pInt;//数组的指针 不需要大小 //释放只有两种形式 delete 指针 delete [] 指针 //delete [][] p 没有这种写法 pInt = nullptr;}struct MM{ char* name; int age; void printMM() { cout << name << "\t" << age << endl; }};void testStructMerrory(){ //new一个对象 int* p = new int(123); //结构体只能用大括号 MM* pMM = new MM; //结构体中指针,要做二次申请,才能strcpy,或者赋值 pMM->name = new char[20]; strcpy_s(pMM->name, 20, "李四"); pMM->age = 188; pMM->printMM(); //申请的顺序和释放的顺序是相反的 delete[]pMM->name; delete pMM;}int main(){ //testNoeMemory(); testStructMerrory(); return 0;}
3. 内存池
允许大家申请一段内存,共给程序使用,综合管理内存
4. string类型
只需要知道有这种用法即可,不需要大家深究为什么,因为string本身是一个类,需要讲完类的大部分知识,才能追究为什么这样做。自己也可以封装一个string 类型
string创建
+ 带初始化
+ 不带初始化
+ 通过另一个字符串创建
string基本操作
+ 拷贝
+ 赋值
+ 连接
+ 比较
C++string与C语言string.h
string 其他函数操作
以上就是关于"C++与C语言的区别是什么"这篇文章的内容,相信大家都有了一定的了解,希望小编分享的内容对大家有帮助,若想了解更多相关的知识内容,请关注行业资讯频道。
结构
内存
指针
数组
数据
语言
C++
函数
成员
内容
动态
变量
单个
对象
知识
类型
例子
关键
关键字
写法
数据库的安全要保护哪些东西
数据库安全各自的含义是什么
生产安全数据库录入
数据库的安全性及管理
数据库安全策略包含哪些
海淀数据库安全审计系统
建立农村房屋安全信息数据库
易用的数据库客户端支持安全管理
连接数据库失败ssl安全错误
数据库的锁怎样保障安全
天津市摩尔互联网科技
互联网最新的科技
智能科技公司是互联网公司吗
朗新科技与工业互联网
互联网金融 科技金融
万易互联网科技
世界互联网领先科技成果
北京互联网络科技有限公司
华中科技大学互联网
天扬科技互联网广告
宝灵互联网科技有限公司
互联网科技革命什么开始
互联网新科技动漫ppt素材
互联网金融科技名词解释
互联网第三次科技革命特征
互联网公司高科技产品
梅州GM互联网络科技有限公司
美国互联网科技公司
绵阳真晨互联网科技有限公司
互联网企业和网络科技有限公司
互联网中国科技
宜安科技 互联网金融
云电互联网科技
互联网科技英文翻译
中国科技互联网公司收入
中国的互联网科技企业的崛起
福州新华互联网科技学校 知乎
苏州五指互联网络科技有限
互联网科技和信息
互联网科技大会大佬