![](https://img-blog.csdnimg.cn/20201014180756780.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
C语言
notepi
这个作者很懒,什么都没留下…
展开
-
为什么初始化的全局变量和未初始化的全局变量要保存在不同的段??
C规定,未初始化变量的初值为0,这个清0的操作是由启动代码完成的,还有已初始化变量的初值的设置,也是由启动代码完成的。 为了启动代码的简单化,编译链接器会把已初始化的变量放在同一个段:.data,这个段的映像(包含了各个变量的初值)保存在“只读数据段”,这样启动代码就可以简单地复制这个映像到 .data 段,所有的已初始化变量就都初始化了。 而未初始化变量也放在同一个段:.bss,启动代码简单转载 2015-09-09 19:15:00 · 4878 阅读 · 0 评论 -
main函数的参数
main函数可以不带参数,也可以带参数,这个参数可以认为是 main函数的形式参数。C语言规定main函数的参数只能有两个,习惯上这两个参数写为argc和argv。因此,main函数的函数头可写为: main (argc,argv) C语言还规定argc(第一个形参)必须是整型变量,argv( 第二个形参)必须是指向字符串的指针数组。加上形参说明后,main函数的函数头应写为:转载 2015-08-18 21:03:25 · 542 阅读 · 0 评论 -
栈,堆,代码区,全局(静态)区 ,常量区
http://www.cnblogs.com/zcy_soft/archive/2010/10/14/1851074.html 一般认为在c中分为这几个存储区 1栈 - 有编译器自动分配释放 2堆 - 一般由程序员分配释放,若程序员不释放,程序结束时可能由OS回收 3全局区(静态区),全局变量和静态变量的存储是放在一块的,初始化的转载 2013-12-09 18:16:28 · 807 阅读 · 0 评论 -
如何处理.H头文件中的变量
当程序达到一定规模后,适当的把代码进行规划就显得的十分必要。在c语言中.c和.h十分常见,在始学c语言之初我们做的第一件事就是 include。这个.h到底是什么东西呢? 编译器在预处理的时候会将包含的.h文件内容加载到.c中,若是处理的不好,将变量定义,或者是数组定义,函数定义等等定义包含在.h中,其他文件再包含头文件则有可能产生重复定义的报错。 比较合理的做法是,把需要使用的函数,可能被外原创 2015-06-30 18:57:54 · 530 阅读 · 0 评论 -
记一个知识点-fgets();
原创 2015-10-16 22:37:41 · 495 阅读 · 0 评论 -
c/c++内存布局
一个由C/C++编译的程序占用的内存分为以下几个部分 1、栈区(stack)— 由编译器自动分配释放 ,存放函数的参数值,局部变量的值等。其操作方式类似于数据结构中的栈。 堆(heap):由malloc,new等分配的空间的地址,地址由低向高增长(程序员释放)。 2、堆区(heap) — 一般由程序员分配释放, 若程序员不释放,程序结束时可能由OS回收 。注意它与数转载 2015-09-15 19:14:13 · 570 阅读 · 0 评论