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

C语言程序设计:现代方法3

2017-10-18 19:48 281 查看

8.数组

#define SIZE (sizeof(a) / sizeof(a[0]))


在多维数组中,C语言是按照行主序存储的。

srand((unsigned) time(NULL));

rand() % N;

memcpy(a, b, sizeof(a));

9.函数

printf的返回值是显示字符的个数。

在< stdlib.h>中exit也可用于函数终止,并传递状态码。return是语言级别的,它表示了调用堆栈的返回。exit是系统调用级别的,它表示了一个进程的结束。return是函数的退出(返回);exit函数是进程的退出,它退出应用程序,并将应用程序的一个状态返回给OS。

/*递归
快速排序*/
void quickSort(int* a, int left,int right)
{
if(left < right)
{
int i = left, j = right, k = a[left];
while(i<j)
{
while(i<j && a[j] >= k) j--;
if(i < j)
s[i++] = s[j];
while(i<j && a[i] <= k) i++;
if(i < j)
s[j--] = s[i];
}
a[i] = k;
int mid = (left + right) / 2;
quickSort(a, left, mid);
quickSort(a, mid+1, right);
}
}
int main()
{
int a[6] = {1,6,3,9,2,6};
quickSort(a, 0, 5);
return 0;
}


函数原型中的形参可以不和后面的函数定义给出的名字一致。

测试main函数的返回值是与不同的操作系统有关,许多操作系统都可以在批处理或外壳文件测试main函数的返回值,比如C外壳是$status。

//神秘的函数
//转为二进制
void pb(int n)
{
if(n != 0)
{
pb(n/2);
putchar('0' + n % 2);
}
}


10.程序结构

静态局部变量会隐藏来自其他函数的数据地方,但他将会为同一个调用它的函数保留数据。

/* 栈 */
#define STACK_SIZE 100
#define TRUE 1
#define FALSE 0

typedef int Bool;
/* extern */
int contents[STACK_SIZE];
int top = 0;

Bool is_empty(void)
{
return top == 0;
}

void make_empty(void)
{
top = 0;
}

void push(int element)
{
if(top == STACK_SIZE)
stack_overflow();
contents[top++] = element;
}

int pop()
{
if(top == 0)
stack_underflow();
return contents[--top];
}


外部变量利弊:

1.共享变量很有用。

2.程序修改期间,如果改变外部变量的值,那么需要检查同一文件内的所有函数受影响程度。

3.很难在其他程序中复用依赖外部变量的函数。



构建C程序编排顺序:

include, define, 类型定义, 全局变量, 函数原型, main, 函数定义。

在每个函数声明之前,要用注释box写出,函数的目的,函数的形参,函数的返回值,以及有什么副作用。

11.指针

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  c语言