C语言小笔记

static 修饰全局变量

  也就是static修饰的全局变量。作用域仅限于变量被定义的文件中,其他文件即使用 extern声明也没法使用它。

 

static 修饰的函数

  同静态全局变量,作用域仅限于方法定义的文件中。

  函数前加 static使得函数成为静态函数。但此处“static”的含义不是指存储方式,而是指对函数的作用域仅局限于本文件(所以又称内部函数)。使用内部函数的好处是:不同的人编写不同的函数时,不用担心自己定义的函数,是否会与其它文件中的函数同名。

  关键字 static有着不寻常的历史。起初,在 C 中引入关键字static是为了表示退出一个块后仍然存在的局部变量。随后,static 在 C 中有了第二种含义:用来表示不能被其它文件访问的全局变量和函数。为了避免引入新的关键字,所以仍使用 static关键字来表示这第二种含义。
 
sizeof
  sizeof 是C语言中的关键字,而非函数。
  sizeof 计算类型(如int)大小时,要用括号将类型括起来,不能省略括号。计算类型的对象、变量时,可以省略括号。

 

typedef 数组和动态数组的删除

1 typedef std::string AddressLines[4];
2 std::string *pal =  new AddressLines;     //注意 new  AddressLines 返回一个string*,就像new string[4]一样
3                           //重要的是:删除时调用数组形式的delete
4 delete pal;       //error, 导致未定义行为
5 delete [] pal;    //right
6 

  1、注意删除动态数组时,中间的[]。

  2、为避免错误,最好不要对数组形式作typedef 动作。 

 

 

 

posted on 2010-03-08 17:07  ︶ㄣ第二名  阅读(330)  评论(0编辑  收藏  举报