C和Cpp两大重点

C:指针
重点是间接赋值成立的三个条件
1.有实参 和 形参
2.形参和实参关联,即实参给形参赋值
3.在子函数里 *p=values;

Cpp : 函数指针
重点是多台成立的三个条件
1.有继承
2.有虚函数重写
3.父类指针或者引用指向子类对象

C语言里,间接赋值效率很高,要分清楚传入参数和传出参数的概念。
C++里,继承可以编码未来,提高了程序的可扩展性。

C语言:

指针作为函数参数
    一级指针作为函数参数有几种用法
    二级指针作为函数参数有几种用法
    三级指针作为函数参数有几种用法
函数指针作为函数参数

C++:(站在C++编译器角度思考)

封装(最牛X的一个理念)
    对象作为函数参数   既可以使用对象属性又可以使用对象方法  比C传递的信息多
继承
    继承的时候,先调用父类还是子类的构造函数。
    90年代的对象可以调用80年代写的代码
多态
    可扩展,80年代写的对象可以调用90年代写的代码
C语言C++在设计理念、功能特性以及应用场景上存在显著差异,以下从多个方面进行详细阐述: ### 设计理念 C语言是一个结构化语言,重点在于算法数据结构。C程序设计首要考虑的是如何通过一个过程,对输入(或环境条件)进行运算处理得到输出(或实现过程(事务)控制)。而C++首要考虑的是如何构造一个对象模型,让这个模型能够契合与之对应的问题域,通过获取对象的状态信息得到输出或实现过程(事务)控制[^2]。 ### 语法特性 - **面向过程与面向对象**:C语言是典型的面向过程编程语言,程序由一系列函数组成,通过函数调用实现功能。例如,一个简单的C语言程序计算个数的: ```c #include <stdio.h> int add(int a, int b) { return a + b; } int main() { int result = add(3, 5); printf("The result is: %d\n", result); return 0; } ``` C++则支持面向对象编程,引入了类对象的概念,通过封装、继承多态等特性提高代码的可维护性可扩展性。以下是一个简单的C++类实现个数相加的示例: ```cpp #include <iostream> class Calculator { public: int add(int a, int b) { return a + b; } }; int main() { Calculator calc; int result = calc.add(3, 5); std::cout << "The result is: " << result << std::endl; return 0; } ``` - **函数重载默认参数**:C++支持函数重载,即可以定义多个同名但参数列表不同的函数。同时,C++还支持默认参数,在函数定义时可以为参数指定默认值。而C语言不支持这些特性。例如在C++中: ```cpp #include <iostream> int add(int a, int b) { return a + b; } double add(double a, double b) { return a + b; } int main() { int intResult = add(3, 5); double doubleResult = add(3.5, 5.5); std::cout << "Int result: " << intResult << std::endl; std::cout << "Double result: " << doubleResult << std::endl; return 0; } ``` - **模板**:C++引入了模板的概念,包括函数模板类模板,允许编写通用的代码,提高代码的复用性。C语言没有模板机制。例如一个简单的C++函数模板: ```cpp #include <iostream> template <typename T> T max(T a, T b) { return (a > b)? a : b; } int main() { int intMax = max(3, 5); double doubleMax = max(3.5, 5.5); std::cout << "Int max: " << intMax << std::endl; std::cout << "Double max: " << doubleMax << std::endl; return 0; } ``` ### 内存管理 C语言主要使用`malloc`、`calloc`、`realloc``free`等函数进行动态内存分配释放。例如: ```c #include <stdio.h> #include <stdlib.h> int main() { int *arr = (int *)malloc(5 * sizeof(int)); if (arr == NULL) { printf("Memory allocation failed\n"); return 1; } for (int i = 0; i < 5; i++) { arr[i] = i; } free(arr); return 0; } ``` C++除了可以使用C语言的内存管理方式外,还引入了`new``delete`运算符,使用起来更加方便安全。例如: ```cpp #include <iostream> int main() { int *arr = new int[5]; for (int i = 0; i < 5; i++) { arr[i] = i; } delete[] arr; return 0; } ``` ### 应用场景 C语言由于其高效性对硬件的直接访问能力,常用于系统软件、嵌入式系统、驱动程序开发等领域。C++则在游戏开发、图形处理、型软件项目等方面有广泛应用,同时也可以用于系统级编程[^1]。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值