黑马程序员---C语言学习笔记之五

来源:互联网 发布:中国地理拼图软件 编辑:程序博客网 时间:2024/05/16 09:58
------- android培训、java培训、期待与您交流! ----------

1.位段(位域)

  使用伪指令#pragma pack (n),编译器将按照 n 个字节对齐;
  使用伪指令#pragma pack (),取消自定义字节对齐方式。

2.隐式声明,一切未知的类型C都看成int

3.在头文件里面声明全局变量,在某个.c文件中定义这个全局变量

4.静态变量static
  静态局部变量: 静态局部变量就会一直保留,直到这个程序结束
  普通的局部变量在函数调用结束后,空间就被释放了
  创建静态局部变量的语句只会被调用一次,只分配一次空间

5.寄存器变量register
  CPU中的寄存器存取速度非常快,所以如果想把一个变量放到寄存器中,可以用register声明
  register只是一个请求,由于CPU的寄存器个数是有限的,而且很多寄存器都有特殊的用途,所以用register声明的变量未必会被放到寄存器中

6.不稳定变量volatile  程序中每次使用变量就读取一次变量的值

7.外部变量extern
  在A文件中,如果想要使用B文件中的全局变量,就要在A文件中用extern来说明这个在B文件中声明的全局变量


8.全局变量: 在所有函数之外定义的变量, 如果没有被初始化, 会自动初始化为0
  由于任何地方都可以修改它, 可能会造成混乱, 所以推荐尽量不使用全局变量

9.局部变量: 在小范围内定义的变量, 出了这个范围就无法使用. 如果没有初始化, 则值是不确定的
  不要在程序中返回局部变量的地址

10.各种变量的作用域与可见性
   1)局部变量       作用域和可见性均为声明它的语句块
   2)静态局部变量   作用域为程序执行期间,可见性为声明它的语句块
   3)全局变量       作用域和可见性均为程序执行期间
   4)静态全局变量   作用域和可见性均只在本文件中
   5)外部变量       作用域和可见性均为程序执行期间
   6)常量           作用域和可见性均为声明它的语句块
   变量的作用范围规则是局部优先,即如果变量有同名现象,小范围的变量优先使用
   全局变量和静态变量会自动初始化为0

11.函数的调用
   每次执行函数都会重新创建一份函数内部的形参和所有变量, 函数执行结束以后, 总是会回到调用它的地方,如果函数有返回值会把返回值带回到调用处
   函数中的形参与函数内的变量是保存在栈中的, 函数执行结束后,这些变量就被释放了

12.递归函数
   在程序体中调用它自身的函数称为递归函数,要注意的是递归函数必须有结束的条件,并且该条件一定能够满足
   它可以把复杂的问题转化成简单的问题,把大规模的问题化为小规模的问题,但是到最简单,最小规模的时候,必须要解决问题

13.函数的默认参数:
    1)函数的形参可以指定默认值,在指定默认值之后,可以不必为有默认值的形参传递参数
    2)函数在调用的时候,是按照从左到右的顺序在匹配参数
    3)默认值一定要是常量,并且要是连续的
    4)如果声明时指定默认值,则定义时不能再指定
0 0
原创粉丝点击