![](https://img-blog.csdnimg.cn/20201014180756754.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
C/C++知识点
箭已离弓
总想着自己写博客,可是网上写好的太多。所以就转载过来学习吧。
展开
-
堆和栈是什么?它们在哪?
转载自:堆和栈是什么?它们在哪? 问题描述编程语言书籍中经常解释值类型被创建在栈上,引用类型被创建在堆上,但是并没有本质上解释这堆和栈是什么。我仅有高级语言编程经验,没有看过对此更清晰的解释。我的意思是我理解什么是栈,但是它们到底是什么,在哪儿呢(站在实际的计算机物理内存的角度上看)?在通常情况下由操作系统(OS)和语言的运行时(runtime)控制吗?它们的作用范转载 2015-08-02 22:05:36 · 497 阅读 · 0 评论 -
C++ 对象的内存布局(上)
C++ 对象的内存布局(上) 陈皓http://blog.csdn.net/haoel 点击这里查看下篇>>>前言 07年12月,我写了一篇《C++虚函数表解析》的文章,引起了大家的兴趣。有很多朋友对我的文章留了言,有鼓励我的,有批评我的,还有很多问问题的。我在这里一并对大家的留言表示感谢。这也是我为什么再写一篇续言的原因。因为,在上一篇文章中,我用了的示例都是非转载 2017-05-10 10:18:47 · 223 阅读 · 0 评论 -
C++ 虚函数表解析
C++ 虚函数表解析 陈皓http://blog.csdn.net/haoel 前言 C++中的虚函数的作用主要是实现了多态的机制。关于多态,简而言之就是用父类型别的指针指向其子类的实例,然后通过父类的指针调用实际子类的成员函数。这种技术可以让父类的指针有“多种形态”,这是一种泛型技术。所谓泛型技术,说白了就是试图使用不变的代码来实现可变的算法。比如:模板技术,R转载 2017-05-10 10:10:28 · 189 阅读 · 0 评论 -
C++虚函数和纯虚函数的作用与区别
虚函数为了重载和多态的需要,在基类中是有定义的,即便定义是空,所以子类中可以重写也可以不写基类中的此函数!纯虚函数在基类中是没有定义的,必须在子类中加以实现,很像Java中的接口函数!虚函数引入原因:为了方便使用多态特性,我们常常需要在基类中定义虚函数。class Cman{public:virtual void Eat(){……};转载 2016-12-24 11:20:28 · 298 阅读 · 0 评论 -
C/C++中const的用法
1. const 在C和C++中的区别C++中的const正常情况下是看成编译期的常量,编译器并不为const分配空间,只是在编译的时候将期值保存在名字表中,并在适当的时候折合在代码中. 所以在C++中const修饰的量可以用在数组的定义中。而在C中,const是一个不能被改变的普通变量,既然是变量,就要占用存储空间,所以编译器不知道编译时的值.而且,数组定义时的下标必须为常量.转载 2016-12-24 11:19:34 · 262 阅读 · 0 评论 -
C++的四种强制类型转换
C++的四种强制类型转换,所以C++不是类型安全的。分别为:static_cast , dynamic_cast , const_cast , reinterpret_cast为什么使用C风格的强制转换可以把想要的任何东西转换成合乎心意的类型。那为什么还需要一个新的C++类型的强制转换呢?新类型的强制转换可以提供更好的控制强制转换过程,允许控制各种不同种类的强制转换。C++中风格是stat转载 2016-12-24 11:15:47 · 218 阅读 · 0 评论 -
C++中sizeof用法
1. 定义sizeof是一个操作符(operator)。其作用是返回一个对象或类型所占的内存字节数。其返回值类型为size_t。(size_t在头文件stddef.h中定义,它依赖于编译系统的值,一般定义为 typedef unsigned int size_t;)2. 语法sizeof有三种语法形式:1) sizeof (ob转载 2016-12-24 11:09:58 · 505 阅读 · 0 评论 -
c++多线程编程
一直对多线程编程这一块很陌生,决定花一点时间整理一下。os:ubuntu 10.04 c++1.最基础,进程同时创建5个线程,各自调用同一个函数[html] view plain copy#include iostream> #include pthread.h> //多线程相关操作头文件,可移植众多平台转载 2016-02-12 00:50:30 · 348 阅读 · 0 评论 -
linux 进程(二) --- 进程的创建及相关api
一、进程的创建fork()函数 由fork创建的新进程被称为子进程(child process)。该函数被调用一次,但返回两次。两次返回的区别是子进程的返回值是0,而父进程的返回值则是 新子进程的进程ID。将子进程ID返回给父进程的理由是:因为一个进程的子进程可以多于一个,所有没有一个函数使一个进程可以获得其所有子进程的进程ID。fork使子进程得到返回值0的理由是:一个进程只转载 2016-01-28 19:04:52 · 259 阅读 · 0 评论 -
linux 进程(一)---基本概念
一、进程的定义 进程是操作系统的概念,每当我们执行一个程序时,对于操作系统来讲就创建了一个进程,在这个过程中,伴随着资源的分配和释放。可以认为进程是一个程序的一次执行过程。二、进程与程序的区别 程序时静态的,它是一些保存 在磁盘上得指令的有序集合,没有任何执行的概念。 进程是一个动态的概念,它是程序执行的转载 2016-01-28 18:59:49 · 278 阅读 · 0 评论 -
Linux C Socket编程原理及简单实例
部分转自:http://goodcandle.cnblogs.com/archive/2005/12/10/294652.aspx1. 什么是TCP/IP、UDP?2. Socket在哪里呢?3. Socket是什么呢?4. 有很多的框架,为什么还在从Socket开始?5. Linux C Socket简单示例 1.什转载 2016-01-28 18:28:31 · 412 阅读 · 0 评论 -
c语言二维数组与指针
多C++/C初学者对于二维数组与指针的关系总是搞不清楚,对它的误解比比皆是。一下是本人的一些总结,部分内容参考相关资料,希望对大家的理解有所帮助。(本文对于C/C++而言)首先,我们先从存储的角度对二维数组作一个全面的了解。二维数组在内存中的存储,是按照先行后列依次存放的。从内存的角度看,可以这样说,二维数组其实就是一个一维数组,在内存中没有二维的概念。如果把二维数组的每一行看成一个整体,转载 2015-07-25 21:58:29 · 448 阅读 · 0 评论 -
C语言中数组与指针的结合
C语言中数组与指针的结合1.数组的内存布局数组的元素在内存中的连续排列,也就是说数组元素的地址是连续增加的。定义数组, char c[6];数组元素在内存中的排列是,c[0],c[1],c[2]...对于多维数组,情况也是一样。C使用row major addressing,在地址增加时,最右边的一维的下标先变化,比如二维数组, char c[5][6]转载 2015-07-25 23:33:14 · 881 阅读 · 0 评论 -
数据在内存中的存储方式
数据在存放到内存里的时候,有两种存放方式,即:Big Endian 和 Little Endian这两个存取方式决定了内存存放数据的原则是 高高低低 原则 还是 高低低高 原则。高高低低--内存中的高位存放数据的高位,内存中的低位存放数据的低位(Little Endian )高低低高--内存中的高位存放数据的低位,内存中的低位存放数据的高位(Big Endian )比如:我有一个数转载 2015-07-26 21:51:32 · 806 阅读 · 0 评论 -
C语言文件操作解析(二)
C语言文件操作解析(二) C语言中对文件进行操作必须首先打开文件,打开文件主要涉及到fopen函数。fopen函数的原型为 FILE* fopen(const char *path,const char *mode) 其中path为文件路径,mode为打开方式 1)对于文件路径,只需注意若未明确给出绝对路径,则默认该文件在工程的目录下转载 2016-01-28 12:35:30 · 760 阅读 · 0 评论 -
C语言文件操作解析(一)
在讨论C语言文件操作之前,先了解一下与文件相关的东西。一.文本文件和二进制文件 文本文件的定义:由若干行字符构成的计算机文件,存在于计算机系统中。文本文件只能存储文件中的有效字符信息,不能存储图像、声音等信息。狭义上的二进制文件则指除开文本文件之外的文件,如图片、DOC文档。 事实上,无论是上面所定义的文本文件还是二进制文件,在计算机中存储都是以二进制的形式存储的,因此其本转载 2016-01-28 12:34:48 · 303 阅读 · 0 评论 -
C++ 对象的内存布局(下)
C++ 对象的内存布局(下) 陈皓http://blog.csdn.net/haoel 重复继承 下面我们再来看看,发生重复继承的情况。所谓重复继承,也就是某个基类被间接地重复继承了多次。 下图是一个继承图,我们重载了父类的f()函数。 其类继承的源代码如下所示。其中,每个类都有两个变量,一个是整形(4字节),一个是字符(1字节),而且还有自转载 2017-05-10 10:20:15 · 182 阅读 · 0 评论