- 博客(13)
- 资源 (4)
- 问答 (1)
- 收藏
- 关注
原创 sizeof()为什么不能得到指针指向内容的大小
首先,我们看看sizeof是什么?是一个操作符,也是关键字,就不是一个函数,这和strlen()不同,strlen()是一个函数。那么sizeof的作用是什么?返回一个对象或者类型所占的内存字节数。我们会对sizeof()中的数据或者指针做运算吗?基本不会。例如sizeof(1+2.0),直接检测到其中类型是double,即是sizeof(double) = 8。如果是指针...
2017-07-31 20:21:20 11260 3
原创 结构体中特殊定义int a:5
面试题typedef struct AA{ int b1:5; int b2:2;}AA;void main(){ AA aa; char cc[100]; strcpy(cc,"0123456789abcdefghijklmnopqrstuvwxyz"); memcpy(&aa,cc,siz
2017-07-26 17:48:23 3410
原创 int a[60][250][1000]数组的遍历面试题
请问 下面程序有什么错误?int a[60][250][1000],i,j,k; for(k=0;kfor(j=0;jfor(i=0;ia[i][j][k]=0;首先我运行了一下,是栈溢出了,原因是这个是在main中定义的一个局部变量,而局部变量是存储在栈中的,栈的容量不足以放下这样的大数组。于是我加了个static表示静态,放在堆区,就没有这个
2017-07-25 20:14:21 4552 1
原创 C++各种指针声明
指针1.定义一个指向int型的指针。int *p;2.定义一个含有10int元素的数组int *p[10];3.定义一个含有10个元素的数组,每个元素是一个
2017-07-24 18:57:08 2587
转载 volatile到底有什么用?和regist有什么区别?
volatile也是个单词嘛,解释是易变的,不稳定的,也就是定义为volatile的变量可能会被意想不到地改变,这样,编译器就不会去假设这个变量的值了。即优化器在用到这个变量时必须每次都小心地重新读取这个变量的值,而不是使用保存在寄存器里的备份。具体例子:1)并行设备的硬件寄存器(如状态寄存器)2)一种中断服务子程序中会访问到底额非自动变量。3)多线程应用中被几个任务共
2017-07-22 14:37:01 721
转载 程序的内存分配到几个部分?
程序的内存分配答:一个由 c/C++编译的程序占用的内存分为以下几个部分1、栈区(stack)—由编译器自动分配释放,存放函数的参数值,局部变量的值等。其操作方式类似于数据结构中的栈。 2、堆区(heap)—一般由程序员分配释放,若程序员不释放,程序结束时可能由 OS 回收。注意它与数据结构中的堆是两回事,分配方式倒是类似于链表,呵呵。3、全局区(静态区)(static)—
2017-07-22 14:17:55 778
原创 二叉树的用途之一二叉搜索树
在学习数据结构的时候,也曾经学习过二叉树,以及前序排列、中序排列、后序排列等等,但是一直无缘使用它!二叉树可以干什么? 排序有快速排序,归并排序,查找有二分法,甚至直接遍历查找,二叉树的使用很少。 实际场景使用上,用的最多的是二叉平衡树,有种特殊的二叉平衡树就是红黑树,Java集合中的TreeSet和TreeMap,C++STL中的set,map以及LInux虚拟内存的管理,都...
2017-07-21 15:49:58 20740 1
原创 归并排序菜鸟入门
归并排序是一种稳定快速地排序方法,该算法采用分治法的一个应用。也许这个名字刚听起来不是很好听,我一直将他说成是并归排序哈哈。为什么会叫归并排序呢?不知道大家有没有这个疑问?归并排序的整体思路就是先归后并,归是递归,将数组分为两部分,然后将左右两部分再分别递归分配咯,并就是合并,把分开的各个数组依次合并,最终完成一个无序数组的排序啦。来我们再看看归并排序的基本步骤:1.首先将数组分为
2017-07-20 13:49:30 855 1
原创 二分查找算法小白入门
二分查找是面试时很常出现的题目,今天就来大概学习一下二分查找算法。首先我们要考虑这种算法的优点有哪些?二分查找法的优点是查找速度快,比较次数少,平均性能好。缺点自然是需要要求一个有序的数组来进行查找,如果无序的首先要进行排序、步骤:一个由低到高的数组。1.将数组分为两半,将中间值和要查找的数进行比较,小于中间值则选择前半部分,大于则选择后部分。2.将选择的半部分继续分为
2017-07-20 09:50:09 286
原创 快速排序5分钟快速学习(小白指南)
快速排序在排序中占有重要的地位,今天我和你一起来学习一下快速排序究竟有什么魅力可以让大家使用!我们先看看快速排序的基本步骤:假设有n个变量的数组S[n]1.首先设置两个变量i,j,设置i = 0,j = n-1;2.我们要找到一个类似中间值的数据为关键数据,可以设为S[0],更好的是找到一个更接近中间值的数来进行处理,可以进行优化。3.第三步是关键,分为两步1)从最
2017-07-19 20:38:36 524
转载 框架和设计模式的区别
框架通常是代码重用,而设计模式是设计重用,架构则介于两者之间,部分代码重用,部分设计重用。在软件生产中有三个级别的重用:内部重用,即在同一应用中能公共使用的抽象块。代码重用,即将通用模块组合库或工具集,以便在多个应用和领域都能使用。应用框架的重用,即为专用领域提供通用的或现成的基础结构,以获得最高级别的重用性。设计模式是对在某种环境中反复出现的问题以及解决该问题的方案的描述,它
2017-07-18 20:36:31 392
原创 算法总览
1.查找和排序查找:不外乎顺序查找,二分查找,哈希表查找和二叉树查找。顺序查找:一个个遍历查找。二分查找:元素必须是有序的,用中间值判断要查找的值在哪一半,然后再找一半的中间值进行比较。改进是在中间值的取值,改为自适应的“”中间值“可以更快的找到要查找的值。二叉树查找:创建二叉搜索树,即左节小于根,根小于右节点的二叉树。哈希查找:使用键值对,以空间换时间的算法。
2017-07-15 16:24:32 316
原创 数据结构简介
1.数组数组的内存是连续的,所以可以直接地访问我们要查找的0(n),具有很好的时间效率。2.vector为了解决数组空间效率不高的问题,我们使用
2017-07-11 20:01:33 137
sub1_wxpython_tree.py
2019-08-17
向共享内存赋值一个50000INT数组的结构体赋值,内核崩溃问题
2018-12-27
TA创建的收藏夹 TA关注的收藏夹
TA关注的人