常科报

  博客园  :: 首页  :: 新随笔  :: 联系 :: 订阅 订阅  :: 管理

摘要: 堆和栈的区别一般认为在c中分为这几个存储区1栈 - 有编译器自动分配释放2堆 - 一般由程序员分配释放,若程序员不释放,程序结束时可能由OS回收3全局区(静态区),全局变量和静态变量的存储是放在一块的,初始化的全局变量和静态变量在一块区域,未初始化的全局变量和未初始化的静态变量在相邻的另一块区域。 - 程序结束释放4另外还有一个专门放常量的地方。 - 程序结束释放在函数体中定义的变量通常是在栈上,用malloc, calloc, realloc等分配内存的函数分配得到的就是在堆上。在所有函数体外定义的是全局量,加了static修饰符后不管在哪里都存放在全局区(静态区),在所有函数体外定义的st 阅读全文
posted @ 2013-05-01 12:33 常科 阅读(160) 评论(0) 推荐(0)

2013年5月10日

摘要: Alt+Shift组合键 切换窗口在主题窗格中移动Tab 键 转到第一个或下一超级链接Shift+Tab 组合键 转到最后或前一超级链接在定位窗格中移动Shift+Tab 组合键 移至上一选项或选项组Ctrl+Tab 组合键或 Ctrl+Shift+Tab 组合键 选择下一个或者前一个工具栏 在文档和程序窗口中移动Alt+Tab 组合键 切换至下一个程序或 Microsoft Word 文档窗口 Alt+Shift+Tab 组合键 切换至上一个程序或 Microsoft Word 文档窗口 在对话框中移动Tab 键或 Shift+Tab 组合键(在激活工具栏以后) 选择工具栏中的下一个或前一个 阅读全文
posted @ 2013-05-10 17:55 常科 阅读(272) 评论(0) 推荐(0)

2013年5月4日

摘要: 先看下面一段代码输出什么:#include<stdo.h>int main(){ int *p=NULL; printf("%s",p); }输出(null) ,单步调试可以看出执行int *p=NULL,p的值为0x00000000,可以看出,NULL在实际底层调用中就是0,在C语言中,NULL和0的值都是一样的,但是为了目的和用途及容易识别的原因,NULL用于指针和对象,0用于数值对于字符串的结尾,使用'\0',它的值也是0,但是让人一看就知道这是字符串的结尾,不是指针,也不是普通的数值在不同的系统中,NULL并非总是和0等同,NULL仅仅代 阅读全文
posted @ 2013-05-04 16:53 常科 阅读(171) 评论(0) 推荐(0)

2013年5月1日

摘要: 计算机程序运行时需要保存和处理数据,而所有的运行时使用的数据都是保存在内存当中的。下面我们就来看一看程序在运行时是如何使用内存的。一个程序中使用的内存都是通过变量来访问的(可能是直接访问,也可能是间接访问),我们看看一个程序中都有哪些种类的变量,它决定着程序运行时的内存使用方式。 类型一:全局变量、静态变量、静态成员变量和静态局部变量这些变量的特点是它们从程序运行的一开始就存在着,可以在程序运行过程中的任意时刻,从任意的位置进行访问,它们将一直生存到程序结束时为止。这一类变量是在一块固定的全局内存区(或称为静态内存区)中分配的,这块空间由程序在开始运行时保留,保存在这一空间中的变量也在运行开始 阅读全文
posted @ 2013-05-01 11:55 常科 阅读(346) 评论(0) 推荐(0)