您的位置:首页 > 编程语言 > C语言/C++

C++复习基础1

2016-03-08 13:54 337 查看
1. 全局变量VS静态全局变量

储存方式上:全局变量是静态存储方式, 静态全局变量当然也是静态存储方式。 这两者在存储方式上并无不同。

两者区别:这两者的区别虽在于非静态全局变量的作用域是整个源程序, 当一个源程序由多个源文件组成时,非静态的全局变量在各个源文件中都是有效的。 而静态全局变量则限制了其作用域,
即只在定义该变量的源文件内有效, 在同一源程序的其它源文件中不能使用它
。由于静态全局变量的作用域局限于一个源文件内,只能为该源文件内的函数公用, 因此可以避免在其它源文件中引起错误。

2. 静态函数

定义:在函数前加static即可

作用:使某个函数只在一个源文件中有效,不能被其他源文件所用。

效果:(1)它允其他源文件建立并使用同名的函数,而不相互冲突。 (2)
声明为静态的函数不能被其他源文件所调用,因为它的名字不能得到。

3. 堆与栈的区别:

  1)堆栈空间分配区别:
  1、栈(操作系统):由操作系统自动分配释放 ,存放函数的参数值,局部变量的值等。其操作方式类似于数据结构中的栈;(注:静态变量是不入栈的)
  2、堆(操作系统): 一般由程序员分配释放, 若程序员不释放,程序结束时可能由OS回收,分配方式倒是类似于链表。

eg:char  p;

      p = (char *)malloc(sizeof(char));

但是,p本身是在栈中。
   2) 堆栈数据结构的区别:

       堆(数据结构):堆可以被看成是一棵树,如:堆排序;

   栈(数据结构):一种先进后出的数据结构。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: