C语言学习笔记8

程序规模不是很大时,最好用只用一个头文件存放程序中各部分共享的对象。

用static声明限定外部变量与函数,可以将其后声明的对象的作用域定为被编译源文件的剩余部分。

如果把函数声明为static类型,则该函数名除了对该函数声明所在的文件可见外,其它文件都无法访问。

不进行显式初始化的情况下,外部变量和静态变量都将被初始化为0,而自动变量和寄存器变量的初始值则没有定义。


Register声明告诉编译器,它所声明的变量在程序中使用频率较高。其原理是将该变量放在机器的寄存器中。

Register声明只适用于自动变量以及函数的形式参数。

无论寄存器变量是不是存放在寄存器中,它的地址都是不能访问的。

 

快速排序基本思想:对于一个给定的数组,从中选择一个元素,以该元素为界将其余元素划分为两个子集,一个子集中元素都小于该元素,另一个子集中元素都大于该元素。

void qsort(int v[], int left, int right)

{

  int i, last;

  void swap(int v[], int i, int j);

  if(left >= right)

    return;

  swap(v, left, (left + right) / 2);

  last = left;

  for(i = left + 1; i <= right; i++)

    if(v[i] < v[left])

      swap(v, ++last, i);

  swap(v, left, last);

  qsort(v, left, last - 1);

  qsort(v, last + 1, right);

}

void swap(int v[], int i, int j)

{

  int temp;

  temp = v[i];

  v[i] = v[j];

  v[j] = temp;

}

posted @ 2010-04-07 23:37  lcymail  阅读(177)  评论(0编辑  收藏  举报