
c
Asuna01
这个作者很懒,什么都没留下…
展开
-
c
C语言是当代人学习及生活中的必备基础知识,应用十分广泛,下面为大家带来C语言基础知识梳理总结,C语言零基础入门绝对不是天方夜谭!1、环境篇(ubuntu 系统安装 及环境调试)学习内容:ubuntu 虚拟机安装以及嵌入式开发环境搭建ubuntu 物理机及 u 盘版安装ubuntu 与 windos 等其它系统互访服务配置安装编辑器、编译器、调试器安装及使用2、环境篇(Linux 常用命令)Linux 日常高频率应用命令使用练习 、文件操作命令使用练习 、内容检索命令使用练习压缩解压命令使用练习 、转载 2021-01-06 13:42:10 · 119 阅读 · 0 评论 -
封装 c
C++中的封装:隐藏对象的属性和实现细节,仅仅对外提供公开接口和对象进行交互,将数据和操作数据的方法进行有机结合。转载 2020-12-31 09:14:12 · 140 阅读 · 0 评论 -
c管理
1、函数传指针和传引用的区别?1>指针定义时可以不初始化,但引用不行;2>引用只能和一个实体结合,而指针可和多个实体结合;3>自加减意义不同。指针的++表示指针向后偏移类型个字节,而引用则是+1,–类似;4>sizeof求值的意义不同。Sizeof(指针)是指针所占的字节数,32位平台下为4,64位平台下为8(数组名除外),sizeof(引用)是指引用所指实体类型的大小;5>没有空引用,但是有空指针;6>有多级指针,但没有多级引用;7>引用比指针用起来转载 2020-12-30 11:04:53 · 150 阅读 · 1 评论 -
c
7.作用域C语言中作用域只有两个:局部,全局。C++中则是有:局部作用域,类作用域,名字空间作用域三种。所谓名字空间就是namespace,我们定义一个名字空间就是定义一个新作用域。访问时需要以如下方式访问(以std为例)std::cin<< “123” <<std::endl;例如我们有一个名字空间叫Myname,其中有一个变量叫做data。如果我们希望在其他地方使用data的话,需要在文件头声明:using Myname::data;这样一来data就使用的是Myname转载 2020-12-30 11:04:16 · 110 阅读 · 0 评论 -
c
6.malloc,free && new,delete这个问题很有意思,也是重点需要关注的问题。malloc()和free()是C语言中动态申请内存和释放内存的标准库中的函数。而new和delete是C++运算符、关键字。new和delete底层其实还是调用了malloc和free。它们之间的区别有以下几个方面:①:malloc和free是函数,new和delete是运算符。②:malloc在分配内存前需要大小,new不需要。例如:int *p1 = (int *)malloc(si转载 2020-12-30 11:03:38 · 127 阅读 · 0 评论 -
c 引用
5.引用说到引用,我们第一反应就是想到了他的兄弟:指针。引用从底层来说和指针就是同一个东西,但是在编译器中它的特性和指针完全不同。int a = 10;int &b = a;int *p = &a;//b = 20;//*p = 20;首先定义一个变量a = 10,然后我们分别定义一个引用b以及一个指针p指向a。我们来转到反汇编看看底层的实现:可以看到底层实现完全一致,取a的地址放入eax寄存器,再将eax中的值存入引用b/指针p的内存中。至此我们可以说(在底层)引用本质转载 2020-12-30 11:01:51 · 172 阅读 · 0 评论 -
c
4.const这一部分非常重要。在我的另一篇博客“C语言的32个关键字”中对C语言中的const也有所讲解。当中提到了这么一个问题:C语言中被const修饰的变量不是常量,叫做常变量或者只读变量,这个常变量是无法当作数组下标的。然而在C++中const修饰的变量可以当作数组下标使用,成为了真正的常量。这就是C++对const的扩展。C语言中的const:被修饰后不能做左值,可以不初始化,但是之后没有机会再初始化。不可以当数组的下标,可以通过指针修改。简单来说,它和普通变量的区别只是不能做左值而已。其他地转载 2020-12-30 11:01:16 · 162 阅读 · 0 评论 -
c++
3.函数重载C语言中产生函数符号的规则是根据名称产生,这也就注定了c语言不存在函数重载的概念。而C++生成函数符号则考虑了函数名、参数个数、参数类型。需要注意的是函数的返回值并不能作为函数重载的依据,也就是说int sum和double sum这两个函数是不能构成重载的!我们的函数重载也属于多态的一种,这就是所谓的静多态。静多态:函数重载,函数模板动多态(运行时的多态):继承中的多态(虚函数)。使用重载的时候需要注意作作用域问题:请看如下代码。#include using namespace转载 2020-12-30 11:00:39 · 114 阅读 · 0 评论 -
c语言
说到内联函数大家应当不陌生,它又是一个C89标准下C语言没有的函数。它的具体做法和宏非常相似,也是在调用处直接将代码展开,只不过宏它是在预编译阶段展开,而内联函数是在 编译阶段进行处理的。同时,宏作为预处理并不进行类型检查,而inline函数是要进行类型检查的,也就可以称作“更安全的宏”。内联函数和普通函数的区别:内联函数没有栈帧的开辟回退,一般我们直接把内联函数写在头文件中,include之后就可以使用,由于调用时直接代码展开所以我们根本不需要担心什么重定义的问题——它连符号都没有生成当然不会所谓重定义转载 2020-12-30 10:59:44 · 203 阅读 · 1 评论 -
c与c++
在C++中我们在定义或声明一个函数的时候,有时会在形参中给它赋一个初始值作为不传参数时候的缺省值,例如:int FUN(int a = 10);代表没有传参调用的时候,自动给a赋一个10的初始值。然而这种操作在c89下是行不通的,在c语言下这么写就会报错。我们都知道,系统在调用任何一个函数的时候都有函数栈帧的开辟,如果函数有参数则需要压入实参。平常在我们人为给定实参的时候,是按照参数列表从右向左依次将参数通过mov eax/ecx dword ptr[ebp-4] //假设是int转载 2020-12-30 10:58:50 · 123 阅读 · 0 评论