![](https://img-blog.csdnimg.cn/20201014180756930.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
C/C++
zhangjs0322
这个作者很懒,什么都没留下…
展开
-
内存分配基础知识
预备知识—程序的内存分配 一个由C/C++编译的程序占用的内存分为以下几个部分 1、栈区(stack)— 由编译器自动分配释放 ,存放函数的参数值,局部变量的值等。其操作方式类似于数据结构中的栈。 2、堆区(heap) — 一般由程序员分配释放, 若程序员不释放,程序结束时可能由OS回收 。注意它与数据结构中的堆是两回事,分配方式倒是类似于链表,呵呵。 3、全局区(静态区)(static)—,全局变量和静态变量的存储是放在一块的,初始化的全局变量和静态变量在一块区域, 未初始化的全局变量和未初始化的静态变量转载 2011-03-30 22:38:00 · 711 阅读 · 0 评论 -
strlen和sizeof的区别
char *p="123456"; char q[]="123456"; char m[20]="123456"; int a=sizeof(p);//字符指针的大小 int b=strlen(p);//实际字符串的大小 int c=sizeof(q);//此处计算的大小包含了结束符'\0' int d=strlen(q);//实际字符串的大小 int e=sizeof原创 2011-11-23 20:59:34 · 643 阅读 · 0 评论 -
类的静态成员和非静态成员的区别
1.类的静态成员(变量和方法)属于类本身,在类加载的时候就会分配内存,可以通过类名直接去访问;非静态成员(变量和方法)属于类的对象,所以只有在类的对象产生(创建类的实例)时才会分配内存,然后通过类的对象(实例)去访问。 2.静态函数只有当程序结束的时候才从内存消失。而非静态则是动态加载到内存,当不需要的时候就从内存消失。 3.调用类中的静态函数,你不需要创建对象就可以调用。而对于非静态的函数,原创 2011-12-30 14:56:21 · 1891 阅读 · 0 评论 -
C文件读写操作-向文件写入字符串遇到的问题(sizeof与strlen)
对文件进行追加写操作,将字符数组中的字符串写入文件。每执行程序一次,追加写文件一次。遇到问题如下所述。 代码片段如下: FILE *fp=NULL; char tmp[512]; char buf[1024*5]={0}; if((fp=fopen(filename,"a+"))==NULL){//追加读写打开文件 printf("Open data file failed!\n");原创 2013-04-27 13:28:01 · 1052 阅读 · 0 评论