![](https://img-blog.csdnimg.cn/20201014180756780.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
C语言
文章平均质量分 64
yuesheng3707
这个作者很懒,什么都没留下…
展开
-
真正的main()函数参数
我们平时见到的main()函数一般只有两个参数, 即:int main(int argc, char *argv[]) /******argc代表的是参数的个数,argv即指向所要传递的参数******/ 其实不然,真正的main()函数应该有三个参数, 即:int main(int argc, char *argv[], char *envp[]) envp就原创 2009-09-20 18:21:00 · 357 阅读 · 0 评论 -
常见递归应用总结
递归:函数调用本身 递归与迭代的区别:例子:fibonacci 递归:return fibonacci(n) = fibonacci(n-1) + fibonacci(n-2); 递归:从高到底 从未知到已知 往回 迭代:for(i=2; i fibonacci(i) = fibonacci(i原创 2009-12-10 18:15:00 · 500 阅读 · 0 评论 -
static总结
1)static对局部变量和全局变量的作用不同:对局部变量,他使变量由动态存储方式改变为静态存储方式。而对全局变量来说,它使变量局部化(局部于本文件),但仍为静态存储方式。 作用域:凡有static声明的,其作用域都是局限的,或者局限于本函数内(静态局部变量),或者局限于本文件内(静态外部变量) 2)static声明的函数 如:static int fun(int原创 2009-11-10 15:25:00 · 526 阅读 · 0 评论 -
getchar() getche() getch() 小结
它的问题,我记得它有自已的输入输出函数,并且屏闭了 中的I/O函数curses是linux下面的图形开发库linux的getch()只在curses.h里 首先不要忘了,要用getch()必须引入头文件conio.h,以前学C语言的时候,我们总喜欢用在程序的末尾加上它,利用它来实现程序运行完了暂停不退出的效果。如果不加这句话,在TC2.0的环境中我们用Ctrl+F9编译并转载 2009-11-01 12:18:00 · 499 阅读 · 0 评论 -
scanf深究
例子:#include #include main(){ char buffer[1024]; scanf("%s", buffer); printf("%d/n", strlen(buffer)); printf("%s/n", buffer);}如输入:------123-34回车 // -代表空格符 输出:3123 ==============原创 2009-10-23 00:04:00 · 3339 阅读 · 1 评论 -
sizeof总结
字节对齐 字节对齐计算机组成原理教导我们这样有助于加快计算机的取数速度,否则就得多花指令周期了。为此,编译器默认会对结构体进行处理(实际上其它地方的数据变量也是如此),让宽度为2的基本数据类型(short等)都位于能被2整除的地址上,让宽度为4的基本数据类型(int等)都位于能被 4整除的地址上,以此类推。这样,两个数中间就可能需要加入填充字节,所以整个结构体的size原创 2009-10-23 00:03:00 · 982 阅读 · 0 评论 -
C语言常见错误总结
(1)数据的数值范围 例子:#include main(){ char x; x=500; printf("%c/n", x);} 错了:越界了,char占一个字节,数值范围为:-128~127 如是500,它会将500转换为2进制,在赋给x时,将低八位给x,后面的截去 ---------------------------------原创 2009-10-22 08:55:00 · 610 阅读 · 0 评论 -
NULL与NUL区别
例子:#include #define NUL /0main(){ char str[10] = {1, 2, 3, /0, 5}; char str1[10] = {1, 2, 3, NUL, 5}; printf("str = %s/n", str); printf("str1 = %s/n", str1);}输出:str = 123st原创 2009-10-22 08:55:00 · 900 阅读 · 0 评论 -
位域总结
位域的使用与一般的结构体使用没有多大区别,位域可以位运算 例子:1#include typedef struct bt{ char a:5; char b:5; char c:5; char d:5; char e:5;}bt;main(){ printf("%d/n", sizeof(bt)); }结果:5 例子2#include typedef原创 2009-10-19 00:24:00 · 352 阅读 · 0 评论 -
排序总结
// 1选择排序:就是将第一个与最小的那个交换,然后将第二个与余下的最小的那个交换 .... 选择排序是不稳定的 (稳定是两个数如果相等,则保持他们在排序前的相对顺序,反之就是不稳定的)#include void select_sort(int a[], int n) //选择排序{ int i, j, min, t; for(原创 2009-10-15 19:10:00 · 403 阅读 · 0 评论 -
堆和栈的区别
一、预备知识—程序的内存分配 一个由C/C++编译的程序占用的内存分为以下几个部分 1、栈区(stack)— 由编译器自动分配释放 ,存放函数的参数值,局部变量的值等。其 操作方式类似于数据结构中的栈。 2、堆区(heap) — 一般由程序员分配释放, 若程序员不释放,程序结束时可能由OS回 收 。注意它与数据结构中的堆是两回事,分配方式倒是类转载 2009-10-09 22:26:00 · 348 阅读 · 0 评论 -
链表总结
补充:typedef作用:定义类型 一般格式:typedef type newname;如 typedef int A;则:A a;相当于:int a; 例子:typedef struct node{ int num; char name[10]; struct node *next;原创 2009-10-12 10:32:00 · 293 阅读 · 0 评论 -
C学习点滴
1) 在给数组初始化时这种做法是不正确的:int a[3];a[3] = {1, 2, 3};-----------------------------也不正确:struct{int a[3];}stu; stu.a[3] = {1, 2, 3}; 正确的:int a[3] = {1, 2, 3}; ----------------原创 2009-10-12 00:28:00 · 344 阅读 · 0 评论 -
C语言面试题大汇总
1、局部变量能否和全局变量重名? 答:能,局部会屏蔽全局。要用全局变量,需要使用 ":: " 局部变量可以与全局变量同名,在函数内引用这个变量时,会用到同名的局部变量,而不会用到全局变量。对于有些编译器而言,在同一个函数内可以定义多个同名的局部变量,比如在两个循环体内都定义一个同名的局部变量,而那个局部变量的作用域就在那个循环体内。 2、如何引用一个已经定义过的全局变量? 答:ex原创 2009-10-10 00:02:00 · 479 阅读 · 0 评论 -
字符串处理函数
(1)puts 向显示器输出字符串 原型:int puts(const char *s) 头文件:#include 返回值:成功返回输出的字符数,失败返回EOF puts()函数与printf()输出字符串的区别: 1.puts在输出字符串时,遇到/0原创 2009-10-08 22:28:00 · 692 阅读 · 0 评论 -
open()与fopen()函数
fopen(),open():打开一个文件用于读或写fopen()函数经常被我们使用 fopen()实例: fopen(文件名, 使用文件的方式)FILE *fp;if((fp = fopen("file", "w")) == NULL) //fopen()的返回值是一个指针 file为文件名 w:写 r:读 a:追加 { print原创 2009-09-24 14:14:00 · 1726 阅读 · 0 评论 -
头文件中的 ifndef/define/endif 干什么用?
在一个大的软件工程里面,可能会有多个文件同时包含一个头文件,当这些文件编译链接成一个可执行文件时,就会出现大量“重定义”的错误。在头文件中实用#ifndef #define #endif能避免头文件的重定义。 方法:例如要编写头文件test.h 在头文件开头写上两行: #ifndef _TEST_H #define _TEST_H//一般是文件名原创 2010-03-10 09:53:00 · 6315 阅读 · 1 评论