摘要:
C 语言离不开函数, 使用函数也很方便, 但使用函数是有代价的; 特别是在反复调用时, 函数会因反复地压栈、出栈而浪费一些时间. 下面是测试, 用函数与不用函数的时间分别是: 8秒、4秒! 1. 测试使用函数的代价: #include #include int sum(int x) { return x + x; } int main(void) { int cou... 阅读全文
摘要:
先复习函数的定义与函数的声明: //这是一个求和函数的定义: int add(int x, int y) { return(x + y); } //可以这样声明: int add(int x, int y); //也可以这样声明: int add(int, int); 定义一个函数指针声明一个函数差不多, 用 (* ) 包括函数即可: //像这样: int (*pfun)(... 阅读全文
摘要:
非指针参数(也就是传值参数)不会被修改原始值, const 对它是没有意义的. const 只用于指针. 1. 第一种用法: const 类型 *变量: 这种用法将限制修改指针指向的值. #include int fun(const int *p) { *p += 1; /* 只有去掉 const 这句才可以执行 */ return *p; } int main... 阅读全文
摘要:
数组参数属于指针参数. 指针参数即时传址参数(或叫引用参数), 如果想在函数中修改参数的值, 这是唯一的途径. 如果把数组当作参数, 不管你愿意与否, 它就是指针, 指向第一个值的指针. 1. 数组参数就是指向第一个元素的指针: #include void getArr(int p[], int si); int main(void) { int ns[] = {1,2,3... 阅读全文
摘要:
1. 递归就是: 函数自己调用自己 这是一个最简单的递归, 不过它会一直执行, 可用 Ctrl+C 终止. #include void prn(void) { printf("C++Builder 2009\n"); prn(); /* 自调用; 注意它会一直执行, 可用 Ctrl+C 终止执行 */ } int main(void) { prn(); ... 阅读全文
摘要:
1. 局部变量: 局部变量也叫自动变量, 它声明在函数开始, 生存于栈, 它的生命随着函数返回而结束. #include int main(void) { auto int i = 9; /* 声明局部变量的关键字是 auto; 因可以省略, 几乎没人使用 */ printf("%d\n", i); getchar(); return 0; } ... 阅读全文