C/C++
文章平均质量分 72
Wilsonboliu
这个作者很懒,什么都没留下…
展开
-
C语言中return,exit,和break 联系与区别
C语言中的return,exit,break,continue。前两个函数使用的同时通常都会带上程序退出时的状态码,标准C中有EXIT_SUCCESS和EXIT_FAILURE两个宏,位于/usr/include/stdlib.h中。是这样定义的的:#define EXIT_FAILURE 1#define EXIT_SUCCESS 0一.exit函数的作用及其与_exit()函数转载 2012-08-31 14:43:07 · 3338 阅读 · 0 评论 -
malloc 返回动态内存问题
#include #include #include void getmemory(char *p){ p=(char*)malloc(100); strcpy(p,"hello world"); }int main(){ char *str = NULL; getmemory(str); prinrf("%s\n",s原创 2012-09-10 11:46:08 · 1725 阅读 · 0 评论 -
数组地址问题
通过下列来说明main(){int a[5]={1,2,3,4,5}; int *ptr=(int *)(&a+1); printf("%d,%d",*(a+1),*(ptr-1));}输出:2,5*(a+1)就是a[1],*(ptr-1)就是a[4],执行结果是2,5&a+1不是首地址+1,系统会认为加一个a数组的偏移,是偏移了一个数组的大小(原创 2012-09-10 10:53:07 · 619 阅读 · 0 评论 -
堆、栈、自由存储区、全局/静态存储区和常量存储区
在C++中,内存分成5个区,他们分别是堆、栈、自由存储区、全局/静态存储区和常量存储区。 栈,那些由编译器在需要的时候分配,在不需要的时候自动清楚的变量的存储区。里面的变量通常是局部变量、函数参数等。堆,就是那些由new分配的内存块,他们的释放编译器不去管,由我们的应用程序去控制,一般一个new就要对应一个delete。 如果程序员没有释放掉,那么在程序结束后,操作转载 2012-09-12 14:46:53 · 1843 阅读 · 0 评论 -
C语言:内存字节对齐详解
一、什么是对齐,以及为什么要对齐:1. 现代计算机中内存空间都是按照byte划分的,从理论上讲似乎对任何类型的变量的访问可以从任何地址开始,但实际情况是在访问特定变量的时候经常在特定的内存地址访问,这就需要各类型数据按照一定的规则在空间上排列,而不是顺序的一个接一个的排放,这就是对齐。2. 对齐的作用和原因:各个硬件平台对存储空间的处理上有很大的不同。一些平台对某些特定类型的数据只转载 2012-09-13 14:27:21 · 729 阅读 · 0 评论 -
C++中extern “C”含义深层探索 zz
1.引言 C++语言的创建初衷是“a better C”,但是这并不意味着C++中类似C语言的全局变量和函数所采用的编译和连接方式与C语言完全相同。作为一种欲与C兼容的语言,C++保留了一部分过程式语言的特点(被世人称为“不彻底地面向对象”),因而它可以定义不属于任何类的全局变量和函数。但是,C++毕竟是一种面向对象的程序设计语言,为了支持函数的重载,C++对全局函数的处理方式与C有明显的不转载 2012-09-13 12:05:55 · 781 阅读 · 0 评论