c指针

C与C++的区别

匿名 (未验证) 提交于 2019-12-03 00:21:02
本篇博客对C与C++的区别与联系进行了整理。并对一些校的知识点进行了扩展。 首先我们先来看一看C/C++的联系 C/C++的联系: C是C++的子集,C++兼容大部分的C语言的语法结构 C/C++的区别: 我们都知道C是面向过程的语言,而C++是面向对象 的语言。那 这里我们就要知道 什么是面向对象? 面向对象 是一种思想,是基于面向过程而言的,就是说面向对象是将功能等通过对象来实现,将功能封装进对象之中,让对象去实现具体的细节;这种思想是将数据作为第一位,而方法或者说是算法作为其次,这是对数据一种优化,操作起来更加的方便,简化了过程。面向对象有三大特征: 封装、继承、多态 ,其中 封装性 指的是隐藏了对象的属性和实现细节,仅对外提供公共的访问方式,这样就隔离了具体的变化,便于使用,提高了复用性和安全性。对于 继承性 ,就是两种事物间存在着一定的所属关系,那么继承的类就可以从被继承的类中获得一些属性和方法;这就提高了代码的复用性。继承是作为多态的前提的。 多态 是说父类或接口的引用指向了子类对象,这就提高了程序的扩展性,也就是说只要实现或继承了同一个接口或类,那么就可以使用父类中相应的方法,提高程序扩展性,但是多态有一点不好之处在于:父类引用不能访问子类中的成员。 特点: 1:将复杂的事情简单化。 2:面向对象将以前的过程中的执行者,变成了指挥者。 3

C 轻量级 信号与槽

半城伤御伤魂 提交于 2019-11-29 19:14:28
#ifndef _SIMPLE_SIGNAL_SOLTS_H_ #define _SIMPLE_SIGNAL_SOLTS_H_ #include "string.h" typedef void (*SIMPLE_SIGNAL)(void *signal, void *pArg); typedef void (*SIMPLE_SOLTS) (void *pArg); #define SIMPLE_SOLTS_T(FuncName) void(FuncName)(void *pArg) #define SIMPLE_EMIT(signal, arg) if (signal != NULL)signal(&signal, arg) #define SIMPLE_SIGNAL_SOLTS_MAX_SOLTS 10 //一个信号最多连接槽的数量 #define SIMPLE_SIGNAL_SOLTS_MAX_SIGNAL 10 //信号最多数量 ErrorStatus SimpleSignalSolts_Connect(SIMPLE_SIGNAL *signal, SIMPLE_SOLTS solts); #endif 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 /*****************************************

c知识点总结2

柔情痞子 提交于 2019-11-26 12:21:38
函数 int func(int x){ //x:形式参数 .... } int main(){ .... int res=func(z); //z:实际参数 } 实参与形参具有不同的存储单元, 实参与形参变量的数据传递是“ 值传递 ”; 函数调用时,系统给形参分配存储单元,并将实参对应的值传递( copy )给形参; P.S. 实参与形参的类型必须相同或可以兼容; 示例: #include<iostream> using namespace std; void exchange(int a, int b){ int p; p = a; a = b; b = p; } int main(){ int a = 3, b = 5; exchange(a, b); cout<<a<<" "<<b<< endl; return 0; } 输出结果将会是3 5. 因为在调用exchange()时,main函数里的a和b的值被copy给exchange(),然后修改的是exchange函数内存空间里的a和b,而不是main函数内的。那如何实现exchange功能呢?可以用指针 #include<iostream> using namespace std; void exchange(int *a, int *b){ int p; p = *a; *a = *b; *b = p; } int