iis服务器助手广告广告
返回顶部
首页 > 资讯 > 后端开发 > 其他教程 >C++与C语言的区别是什么
  • 759
分享到

C++与C语言的区别是什么

2023-06-29 11:06:51 759人浏览 安东尼
摘要

这篇“c++与C语言的区别是什么”文章的知识点大部分人都不太理解,所以小编给大家总结了以下内容,内容详细,步骤清晰,具有一定的借鉴价值,希望大家阅读完这篇文章能有所收获,下面我们一起来看看这篇“C++与C语言的区别是什么”文章吧。1. 结构

这篇“c++C语言的区别是什么”文章的知识点大部分人都不太理解,所以小编给大家总结了以下内容,内容详细,步骤清晰,具有一定的借鉴价值,希望大家阅读完这篇文章能有所收获,下面我们一起来看看这篇“C++与C语言的区别是什么”文章吧。

1. 结构体区别

1.1. 类型上不再需要struct关键字,直接用结构体名即可

#include <iOStream>#include<string>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 <iostream>#include<string>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<iostream>#include<string>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<iostream>#include<string>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语言的区别是什么”这篇文章的内容,相信大家都有了一定的了解,希望小编分享的内容对大家有帮助,若想了解更多相关的知识内容,请关注编程网其他教程频道。

--结束END--

本文标题: C++与C语言的区别是什么

本文链接: https://www.lsjlt.com/news/324491.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • C++与C语言的区别是什么
    这篇“C++与C语言的区别是什么”文章的知识点大部分人都不太理解,所以小编给大家总结了以下内容,内容详细,步骤清晰,具有一定的借鉴价值,希望大家阅读完这篇文章能有所收获,下面我们一起来看看这篇“C++与C语言的区别是什么”文章吧。1. 结构...
    99+
    2023-06-29
  • java与c语言的区别是什么
    这篇文章将为大家详细讲解有关java与c语言的区别是什么,文章内容质量较高,因此小编分享给大家做个参考,希望大家阅读完这篇文章后对相关知识有一定的了解。java基本数据类型有哪些Java的基本数据类型分为:1、整数类型,用来表示整数的数据类...
    99+
    2023-06-14
  • golang与C语言有什么区别
    golang与C语言的区别:1、golang是一门面向对象的编程语言,而C语言是一门面向过程的编程语言;2、golang通过包来管理代码,而C语言通过文件来管理代码;3、golang中一共有25个关键字,而C语言中一共有32个关键字;4、占...
    99+
    2023-07-10
  • Python与C语言的区别有什么
    Python与C语言的区别有什么,很多新手对此不是很清楚,为了帮助大家解决这个难题,下面小编将为大家详细讲解,有这方面需求的人可以来学习下,希望你能有所收获。一、语言类型Python是一种基于解释器的语言,解释器会逐行读取代码;首先将Pyt...
    99+
    2023-06-15
  • C++语言与其他语言有什么区别
    本篇内容主要讲解“C++语言与其他语言有什么区别”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“C++语言与其他语言有什么区别”吧!本文着重进行对C++语言来说,在语法上要简单得多,因此初学者很容...
    99+
    2023-06-17
  • 汇编语言和c语言的区别是什么
    区别:1、因为汇编语言实质上是机器语言的助记符,是直接面对CPU的语言,所以汇编语言的运行效率比C语言高;2、汇编语言对硬件的可操控性强,C语言硬件可操控性比较差;3、汇编语言的目标代码体积小,C语言目标代码体积大;4、汇编语言不易维护,C...
    99+
    2023-05-14
    汇编语言 C语言
  • C语言和java的区别是什么?
    java和c语言两者的区别如下:C语言是面向过程的语言,执行效率高;Java是面向对象的语言,执行效率比C语言低;C语言的安全性不如Java,C语言没有Java的垃圾回收机制,申请的空间要手动释放。Java的通用性好,可以跨平台直接移植,只...
    99+
    2019-02-02
    java教程 C java
  • C++与C语言的区别你知道吗
    目录1.结构体区别1.1.类型上不再需要struct关键字,直接用结构体名即可1.2.C++结构体中允许函数存在2.动态内存申请C语言的动态内存申请C++的动态申请3.内存池4.st...
    99+
    2022-11-13
  • c语言和java的语法区别是什么?
    c语言和java的语法区别单文件的编译时间java比C语言快;C语言可以直接操作内存,java不能直接操作;C语言可以封装动态库,java不行;C语言的代码不容易跨平台,java的代码容易跨平台;C语言有指针,java没有指针;C语言可以直...
    99+
    2017-01-22
    java教程 c语言 java
  • c语言while和if的区别是什么
    在C语言中,while和if是两个不同的控制结构。1. while是一个循环结构,用于重复执行一段代码块,直到给定的条件变为假。它的...
    99+
    2023-09-15
    C语言
  • c语言auto和register的区别是什么
    在C语言中,auto和register是两个关键字,用于声明局部变量。1. auto关键字:auto是默认的存储类别关键字,它用于声...
    99+
    2023-10-12
    c语言
  • c语言string和char的区别是什么
    C语言中,`char`和`string`是两种不同的数据类型。- `char`是C语言中用来表示单个字符的数据类型,它占用一个字节的...
    99+
    2023-08-18
    c语言 string char
  • c语言与go语言的区别有哪些
    小编给大家分享一下c语言与go语言的区别有哪些,希望大家阅读完这篇文章之后都有所收获,下面让我们一起去探讨吧!区别:1、C语言源文件的扩展名是“.h”和“.c”,Go语言源文件的扩展名是“.go”。2、C语言中通过文件来管理代码,Go语言中...
    99+
    2023-06-06
  • C语言和C++有什么区别联系
    C语言和C++有什么区别联系?针对这个问题,今天小编总结了这篇文章,希望能帮助更多想解决这个问题的朋友找到更加简单易行的办法。 C是一个结构化语言,它的重点在于bai算法和数据结构。C程序的设du计首要考虑zhi的是 如何通过一个过程,对输...
    99+
    2023-05-31
    c语言 c++ 区别联系
  • 深入浅析C语言与C++的区别与联系
    目录一、C语言是面向过程语言,而C++是面向对象语言1、面向过程和面向对象的区别2、面向过程和面向对象的优缺点面向过程语言面向对象语言二、具体语言上的区别1、关键字的不同2、后缀名不...
    99+
    2022-11-12
  • java与c语法上的区别是什么?
    java与c语法上的区别是什么?1、标识符:C可用的标识符为数字、大小写字母、下划线,不能以数字开头;【推荐教程:C语言教程】Java可用的标识符除了C的三种以外,多一种美元符号($),同样不能以数字开头。【推荐学习:java课程】2、关键...
    99+
    2021-09-30
    java教程 java c
  • C#与C++枚举的区别是什么
    本篇内容介绍了“C#与C++枚举的区别是什么”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!C++与C#中枚举的区别一、C++枚举类型中的每个...
    99+
    2023-06-30
  • c语言中typedef和define的区别是什么
    这篇文章主要介绍“c语言中typedef和define的区别是什么”,在日常操作中,相信很多人在c语言中typedef和define的区别是什么问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”c语言中typed...
    99+
    2023-06-25
  • C语言中const和define的区别是什么
    本文小编为大家详细介绍“C语言中const和define的区别是什么”,内容详细,步骤清晰,细节处理妥当,希望这篇“C语言中const和define的区别是什么”文章能帮助大家解决疑惑,下面跟着小编的思路慢慢深入,一起来学习新知识吧。def...
    99+
    2023-06-29
  • c语言中*p和p的区别是什么
    区别:1、表示的含义不同,“*p”表示此指针指向的内存地址中存放的内容,“p”表示一个指针变量的名字,指此指针变量所指向的内存地址。2、输出的格式不同,“*p”输出的一般是一个和指针类型一致的变量或者常量,“p”输出的是一个16进制数, 输...
    99+
    2023-05-14
    指针 C语言
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作