随笔分类 -  C语言

摘要:我只要一听到被面试者说:"const意味着常数"(不是常数,可以是变量,只是你不能修改它),我就知道我正在和一个业余者打交道。去年Dan Saks已经在他的文章里完全概括了const的所有用法,因此ESP(译者:Embedded Systems Programming)的每一位读者应该非常熟悉con 阅读全文
posted @ 2017-09-18 15:55 颜小雀 阅读(188) 评论(0) 推荐(0)
摘要:这里定义了一个头文件,包含结构体的声明和函数的声明!该头文件叫做node.h 下面的node.c引入了该头文件,对上面的函数做了具体的实现! 具体使用: 1.设置该链表的最大长度 2.创建头结点 3.以头插式或尾插方式创建链表真正数据节点 4.指行插,删,查,操作! 阅读全文
posted @ 2017-08-29 13:25 颜小雀 阅读(467) 评论(0) 推荐(0)
摘要:http://www.cnblogs.com/kubixuesheng/p/4107309.html 这位前辈讲的不错,摘抄下来以表尊敬! 没错,很多经典的教科书或者指南,一些技术类的讲义,都会这样教授。但是为什么要这样写? 可能一部分人就糊涂了,不知道咋回答,搞技术或者做学问不是诗词歌赋,结论经不 阅读全文
posted @ 2017-08-19 13:25 颜小雀 阅读(1495) 评论(0) 推荐(0)
摘要:C语言提供了几个标准库函数,可以将任意类型(整型、长整型、浮点型等)的数字转换为字符串。以下是用itoa()函数将整数转换为字符串的一个例子:# include <stdio. h># include <stdlib. h> itoa()函数有3个参数:第一个参数是要转换的数字,第二个参数是要写入转 阅读全文
posted @ 2017-08-13 11:43 颜小雀 阅读(1628) 评论(0) 推荐(0)
摘要:http://blog.csdn.net/zhongjiekangping/article/details/5164132 这篇文章讲的真好! 对于 "expr1 + expr2",(其中expr1,expr2都可能是复合表达式),不同的编译器想先算exp1就先算exp1,想先算exp2就先算exp 阅读全文
posted @ 2017-08-12 20:58 颜小雀 阅读(290) 评论(0) 推荐(0)
摘要:《C专家编程》最后一段讲面试,说是微软曾经有一道面试题:写一段代码,确定一个变量是有符号数还是无符号数?首先,任何试图用函数来解决此问题的方法都不好使,因为函数有类型检查,所以只能用宏啦。书中给出了一个宏:#define ISUNSIGNED(a) (a>=0 && ~a>=0)它只能用在K&R C 阅读全文
posted @ 2017-08-12 19:50 颜小雀 阅读(503) 评论(0) 推荐(0)
摘要:在<c专家编程>中第230--231页,讲述了使用指针返回一个数组的方法 文章首先要求声明一个函数,这个函数描述成 返回一个指向包含20个int元素的一维数组的指针。 这个声明没有错,编译可以通过。 但是在函数实现的时候,书上如下 编译时报错! 因为calloc返回一个int*的类型,而我们的pea 阅读全文
posted @ 2017-08-12 16:48 颜小雀 阅读(161) 评论(0) 推荐(0)
摘要:1:在windows平台上,使用conio.h 函数库 getch直接从键盘获取键值,不等待用户按回车,只要用户按一个键,getch就立刻返回,getch返回值是用户输入的ASCII码,出错返回-1.输入的字符不会回显在屏幕上. 2:linux上没有conio.h 函数库,但是可以 可以使用curs 阅读全文
posted @ 2017-08-11 09:10 颜小雀 阅读(2623) 评论(0) 推荐(0)
摘要:qsort () 功 能: 使用快速排序例程进行排序 用 法: void qsort(void *base, int nelem, int width, int (*fcmp)(const void *,const void *)); qsort()地四个函数是自定义的函数排序方式,可以对一个结构体 阅读全文
posted @ 2017-08-10 21:57 颜小雀 阅读(185) 评论(0) 推荐(0)
摘要:对于一下代码: 你确定他打印的是1吗? 运行之后发现结果是 4 ! C语言 类型转换比一般人想像的还要多,在涉及小于int 和 double 的表达式中 , 都有可能出现类型转换! 根据提升规则:它由char 转换成为 int 。这个特性叫做类型提升 ! 下表给出了常见的类型提升的列表: char 阅读全文
posted @ 2017-08-09 21:24 颜小雀 阅读(465) 评论(0) 推荐(0)
摘要:有两个与函数有关,一个与表达式计算有关 1:堆栈为函数内部的声明与局部变量提供存储空间 2:进行函数调用时,堆栈存储与此有关的一些维护性信息,被称为过程活动记录,它包含函数的调用地址,任何不适合装入寄存器的参数以及一些寄存器的值的保存。 3:可以作为临时缓冲区,比如计算一个很长的表达式时 ,可以先将 阅读全文
posted @ 2017-08-06 19:45 颜小雀 阅读(1767) 评论(0) 推荐(0)
摘要:只需记住下面内容: 声明相当于普通的声明:他所说的并非自身,而是描述其他地方创建的对象。 定义相当于特殊的声明: 她为对象分配内存。 C语言中:只能有一个定义,可任意多个声明。 阅读全文
posted @ 2017-08-06 12:08 颜小雀 阅读(196) 评论(0) 推荐(0)
摘要:经预处理后,第二行变为 int * point1,point2. 这就意味着,point1 是一个指向int的指针,但是 point2却是 int类型的了。 所以,宏定义的连续变量的定义中 ,不能保证所有的变量为同一样的类型!! typedef不同,他可以保证连续性。 另外: 这句话是没有问题。 但 阅读全文
posted @ 2017-08-06 11:43 颜小雀 阅读(238) 评论(0) 推荐(0)
摘要:稍微的说明一下,在这个初始化的33个数组中,1 代表活着,0代表死亡,每次到7的时候,就把该元素的值置为0,每次杀人前都要检查一遍是否还要继续杀人了,因为要留下最后一个人。 阅读全文
posted @ 2017-08-06 10:59 颜小雀 阅读(155) 评论(0) 推荐(0)
摘要:int array[] = {1,2,3,4}; #define SIZE (sizeof(array)/sizeof(array[0])) int i=-1; if(i<SIZE) { ...................... } 该条件的语句永远都不会执行。 因为sizeof 返回的是uns 阅读全文
posted @ 2017-08-05 15:32 颜小雀 阅读(194) 评论(0) 推荐(0)
摘要:int a=10,b=12; //a=1010^b=1100; a=a^b; //a=0110^b=1100; b=a^b; //a=0110^b=1010; a=a^b; //a=1100=12;b=1010; 此算法能够实现是由异或运算的特点决定的,通过异或运算能够使数据中的某些位翻转,其他位不 阅读全文
posted @ 2017-07-12 16:36 颜小雀 阅读(1334) 评论(0) 推荐(0)
摘要:转自 http://www.cnblogs.com/hnrainll/archive/2011/08/17/2142001.html进程退出 1.在Linux中任何让一个进程退出 进程退出表示进程即将结束。在Linux中进程退出分为了正常退出和异常退出两种。 1>正常退出 a. 在main()函数中 阅读全文
posted @ 2017-06-18 18:05 颜小雀 阅读(203) 评论(0) 推荐(0)
摘要:原文:http://hubingforever.blog.163.com/blog/static/17104057920122256134681/ 作者写的很好,摘抄下来以表尊敬!! 一、 ANSI C标准中并没有规定,相邻声明的变量在内存中一定要相邻。为了程序的高效性,内存对齐问题由编译器自行灵活 阅读全文
posted @ 2017-06-14 14:20 颜小雀 阅读(1723) 评论(0) 推荐(0)
摘要:memset是linux环境下一个直接操作内存空间的C语言函数。 一句话:可以全部清空,可以设置值 void *memset(void *s, char ch, unsigned n); 将s所指向的某一块内存的首 n 个字节的值设为值 c 输出结果: Buffer before memset: H 阅读全文
posted @ 2017-06-14 14:00 颜小雀 阅读(2403) 评论(0) 推荐(0)
摘要:标准输入 (stdin) 标准输入是指数据(通常是文件)走向程序。程序要求数据传输使用读的运算。并非所有程序都要求输入。如dir或ls程序(显示一个目录中的文件名)运行时不用任何输入。 除非重导向,输入预期由 键盘取得。 标准输入的文件描述子为 0 (零)。POSIX <unistd.h> 定义是  阅读全文
posted @ 2017-06-09 13:06 颜小雀 阅读(1832) 评论(0) 推荐(0)