![](https://img-blog.csdnimg.cn/20201014180756780.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
底层原理
askunix_hjh
这个作者很懒,什么都没留下…
展开
-
C++指针和引用总结 & 之间的区别
一:指针指针是一种数据类型,具有指针类型的变量称为指针变量。1.初识: int *pi; //pi是一个int类型的指针float *pl;char *pc;char (*pa)[3]; //pa是一个指向一维数组的指针int (*pf)(); //pf是一个指向函数的指针,该函数的返回值为int类型int **pp...原创 2017-11-05 13:56:15 · 499 阅读 · 0 评论 -
大小端判断(联合体 & 指针)
所谓大小端:【大端模式】 CPU对操作数的存放方式是高地址存放低位,低地址存放高位。【小端模式】CPU对操作数的存放方式是高地址存放高位,低地址存放低位。大多数ARM处理器都是采用的小端模式,PowerPC是采用的大端模式,网络字节序是采用的大端模式。判断方式——编码实现:1、使用C语言中的联合体#include<stdio.h>union var{ ...原创 2018-08-04 16:27:27 · 2276 阅读 · 0 评论 -
C语言的内存管理机制
内存资源是非常有限的。尤其对于移动端开发者来说,硬件资源的限制使得其在程序设计中首要考虑的问题就是如何有效地管理内存资源。本文是作者在学习C语言内存管理的过程中做的一个总结。变量概念:全局变量(外部变量):出现在代码块{}之外的变量就是全局变量。局部变量(自动变量):一般情况下,代码块{}内部定义的变量就是自动变量,也可使用auto显示定义。静态变量:是指内存位置在程序执行期间一...原创 2018-07-22 15:39:30 · 15298 阅读 · 3 评论 -
结构体 struct 和类 class 的比较
C的结构体和C++结构体的区别1、组成不同C的结构体内不允许有函数存在,C++允许有内部成员函数,且允许该函数是虚函数。所以C的结构体是没有构造函数、析构函数、和this指针的。2、权限不同C的结构体对内部成员变量的访问权限只能是public,而C++允许public,protected,private三种。3、特性(继承)不同C语言的结构体是不可以继承的,C++的结构体是...原创 2018-07-30 14:54:28 · 6342 阅读 · 0 评论 -
从斐波那契数列开始了解递归和尾递归的区别
递归函数是指一些会在函数内调用自己的函数,如果在递归函数中,递归调用返回的结果总被直接返回,则称为尾部递归。尾部递归的函数有助将算法转化成函数编程语言,而且从编译器角度来说,亦容易优化成为普通循环。这是因为从电脑的基本面来说,所有的循环都是利用重复移跳到代码的开头来实现的。如果有尾部归递,就只需要叠套一个堆栈,因为电脑只需要将函数的参数改变再重新调用一次。利用尾部递归最主要的目的是要优化。...原创 2018-07-17 21:25:08 · 1689 阅读 · 0 评论 -
C、CPP文件是怎样运行起来的?
C、CPP文件是怎样运行起来的?这个问题就是编译、运行的问题,在很多面试中都会遇到。(今日头条的研发岗面试题就问到cpp文件是怎样运行起来的?)在此,详细说明C语言的编译运行过程,CPP参考一下也就很容易明白了。C语言是怎么运行的?首先放一张图,说明C语言的运行过程。 C语言要想运行就要经过翻译环境,将 .c/.h 文件翻译成机器可以识别的机器码;这个翻译过程可以分为编译...原创 2018-07-04 09:45:45 · 26179 阅读 · 0 评论 -
分析malloc\free、new\delete的用法和区别
写在前面 每个程序在执行时都会占用一块可用的内存空间,用于存放动态分配的对象,此内存空间称为自由存储区或堆。malloc和free用法 首先明白malloc是动态内存开辟函数,malloc和free是成对出现的,malloc和free在头文件stdlib.h函数中声明,malloc函数返回值为void *,所以使用时,要将该函数的返回值强制类型转换成自己需要的指针类型。...原创 2018-06-22 11:48:51 · 1150 阅读 · 0 评论 -
不同编译器下不同数据类型所占字节大小
数据类型大小区别:32位系统:char: 1个字节char*(也就是指针变量)4个字节(32位的寻址空间是2^32, 即32个bit,也就是4个字节。同理64位编译器)short int :2个字节int: 4个字节unsigned int:4个字节float:4个字节double:8个字节long long:8个字节unsigned long:4个字节...原创 2018-05-13 20:34:52 · 3060 阅读 · 0 评论 -
C语言—动态内存分配
头文件:#include malloc() 函数原型为:void* malloc (size_t size);【参数说明】size 为需要分配的内存空间的大小,以字节(Byte)计。【函数说明】malloc() 在堆区分配一块指定大小的内存空间,用来存放数据。这块内存空间在函数执行完成后不会被初始化,它们的值是未知的。如果希望在分配内存的同时进行初始化,请使用 call原创 2017-04-25 21:15:27 · 330 阅读 · 0 评论 -
C++内存模型
以下内容,大部分整理自网络C分为四个区:堆,栈,静态全局变量区,常量区。详情阅读:C语言内存模型C++内存分为5个区域(堆栈全常代 ):(1)堆 heap : 由new分配的内存块,其释放编译器不去管,由我们程序自己控制(一个new对应一个delete)。如果程序员没有释放掉,在程序结束时OS会自动回收。涉及的问题:“缓冲区溢出”、“内存泄露”(2)栈 sta...原创 2018-08-05 13:32:41 · 2167 阅读 · 2 评论