C/C++
薛永伟
这个作者很懒,什么都没留下…
展开
-
关于指针与病毒
在写一个test来验证指针的一个优先级的时候,突地提示有病毒,而病毒本身就是我刚写的test,是不是病毒我当然知道,但就是想不懂为什么会报毒,特此留下,以供日后参考。这是写的测试优先级的代码,很普通简单的代码,可以看到被当做病毒处理了,而且还尼玛木马。不甚了解,特此马克。我考虑是因为那个指针的原因,就在那个*p的后面输出了一个空,结果就可以正常运行。代码及截图:原创 2013-03-18 15:12:38 · 878 阅读 · 0 评论 -
操作系统中,挂起的含义
阻塞挂起状态(Blocked, suspend):进程在外存并等待某事件的出现就绪挂起状态(Ready, suspend):进程在外存,但只要进入内存,即可运行挂起(Suspend):把一个进程从内存转到外存;可能有以下几种情况:阻塞→阻塞挂起:没有进程处于就绪状态或就绪进程要求更多内存资源时,发生这种转换,以提交新进程或运行就绪进程就绪→就绪挂起:当有高优先级阻塞(系统认为会转载 2013-10-09 18:17:02 · 5543 阅读 · 0 评论 -
vector的常用又重要的几种操作
1. v.push_back(t) 在容器的最后添加一个值为t的数据,容器的size变大。 另外list有push_front()函数,在前端插入,后面的元素下标依次增大。2. v.size() 返回容器中数据的个数,size返回相应vector类定义的size_type的值。 v.resize(2*v.size)将v的容量翻倍 或 v.re原创 2013-04-19 11:12:54 · 859 阅读 · 0 评论 -
共用体的实际应用
共用体用同一个空间来实现储存不同类型的数据,与结构体不同,结构体的大小是整个结构体成员的总和,而共用体的大小是该共用体的成员中占内存最大的决定。比如:用一个链表来储存学生和老师的信息,包括号码、姓名、职责(学生还是老师)、类别(几班或者职位)。这个类别中班级是整数,而职位是字符串,此时可用共用体来表示,需要储存整数就用整型,需要字符串就char型。示例代码:#include#原创 2013-04-17 21:55:20 · 1508 阅读 · 0 评论 -
简单链表的实现和输出
实现原理:用malloc动态获取空间 ,需要的时候再获取,节省内存,也可以free掉,比较自由。首先需要3个指针,一个用来指向链首(*head),一个用来指向新开辟节点(*p1),一个用来指向链尾(*p2)。首先head指针指向NULL,p1和p2都指向新开辟的节点:(新开辟节点由p1牵引)当获取的节点有效{ 第一个获取的节点则head指向第一个节点。当不是第一个节点时则p原创 2013-04-14 20:38:30 · 715 阅读 · 0 评论 -
结构体数组存放学生信息并排序输出
使用选择法进行排序,代码:#includeusing namespace std;struct Students { int num; char name[20]; char sex; int score; };int main(){ struct Students su[5原创 2013-04-10 18:40:26 · 3198 阅读 · 0 评论 -
如何学好编程
诶呀 整理的眼睛都疼了 可是还是整理的有点乱 希望能够带给你们很大的帮助哟要珍惜我的劳动成果。谢谢咯方法(一)编了这么久的程序,一直想找机会总结下其中的心得和方法,但回想我这段编程道路,又很难说清楚,如果按照我走过的所有路来说,显然是不可能的!当我看完了云风的《游戏之旅--编程感悟》和梁肇新的《编程高手箴言》我突然知道我要从何说起,我要怎么说了!从接触编程到现在已经至转载 2013-03-26 20:17:43 · 1576 阅读 · 3 评论 -
鸡尾酒排序法(双向冒泡)
#includeusing namespace std;int main(){ int a[5]; int temp; bool swapped; int top=5,bottom=0,bound=0; int i,j,k,t=0; for(i=0;i<5;i++) cin>>a[i]; swapped=true; while(swapped) { cout<原创 2013-04-05 18:48:43 · 946 阅读 · 1 评论 -
指针与二维数组
指针与二维数组,可能与指针的关系还不算太大,但是这里引用二维数组的时候还是与一位数组大大的不同的。如果a是一位数组名,则a[i]代表a数组序号为i的元素的储存单元。a[i]是有物理地址的,是占储存单元的。如果a是二维数组名,则a[i]代表a数组的第一行的地址,不是某一元素的值。此外,a,a+1, a[i] ,*(a+1), *(a+1)+1,a[i]+j,都是地址。原创 2013-03-20 16:46:30 · 542 阅读 · 0 评论 -
由a+1与*(a+1)想到的取地址与取值问题
看程序:我恐怕a+1与*(a+1)在二维数组的某些特殊性质(比如一位数组的a+1只表示a的第1号元素地址,二维数组中表示第1行的首地址,结果是同一个地址)引起的,故代码中改为了a+2,此数组为3X4数组。可以看到a+2与*(a+2)的地址是完全一样的,输出这个地址的值,得到的是17,即第三行的首元素。所以在二维数组中一个下标的表示还是各个首地址。那么为什原创 2013-03-20 17:23:50 · 1130 阅读 · 0 评论 -
数据结构——排序法
排序;1、插入排序(直接插入排序和希尔排序)2、选择排序(直接选择排序和堆排序)3、交换排序(冒泡排序和快速排序)4、归并排序5、基数排序---------------------直接插入排序说明:逐个将后一个数加到前面的排好的序中。在直接插入排序过程中,对其中一个记录的插入排序称为一次排序;直接插入排序是从第二个记录开始进行的,因此,长度为n的记录序列转载 2013-03-18 16:06:32 · 497 阅读 · 0 评论 -
c/c++如何获取数组的长度
C、C++中没有提供 直接获取数组长度的函数,对于存放字符串的字符数组提供了一个strlen函数获取长度,那么对于其他类型的数组如何获取他们的长度呢?其中一种方法是使 用sizeof(array) / sizeof(array[0]), 在C语言中习惯上在 使用时都把它定义成一个宏,比如#define GET_ARRAY_LEN(array,len) {len = (sizeof(array) /转载 2013-03-16 17:14:49 · 992 阅读 · 0 评论 -
关于数组的初始化是否为0
在我对数组初始化的时候首先想到的就是全部初始化:for(int i=0;i{ a[i[=0;}这样的话感觉也太浪费了,一共进行了100次赋值操作,就想起来说“数组未赋值的自动赋值为0”,于是,没有初始化的情况下进行输出:输出时乱码。可见系统没有自动赋值。 然后手动进行赋值一个0:已经全部是0了,我试着给前几个赋值:已经赋值的是正确值,没原创 2013-03-16 17:29:52 · 3886 阅读 · 0 评论 -
java为什么计算时间从1970年1月1日开始
今天在看Python API 时,看到 time 模块 : The epoch is the point where the time starts. On January 1st of that year, at 0 hours,the “time since the epoch” is zero. For Unix, the epoch is 1970. To find out wh转载 2013-10-11 21:53:27 · 797 阅读 · 0 评论