C
ccc33242323
这个作者很懒,什么都没留下…
展开
-
printf()和sprintf()函数的区别和用法
在C语言编程的时候经常会使用printf()和sprintf()函数,包括我在刚开始接触的时候也对这两个模样相近的函数有些晕乎乎。如何区分其用法?现在看来其实很简单:printf()函数常常连接到外部硬件上,常见的是UART串口模块,使用printf()函数可以将你想显示的内容通过串口发送出去。 sprintf()函数则不同,与其对接的只是一段内存空间,比如数组,将你要显示的内转载 2010-05-10 23:08:00 · 1289 阅读 · 0 评论 -
x &= (x-1)的理解
<br />x &= (x-1)可以删除x从右边数第一个值为1的位,把它置为0。原因在于x右边的值不管是1还是0,当减去1之后肯定与前相反,如果之前是1的话,则变为0后再用&运算,就会变成0,所以删除了。原创 2010-06-06 10:25:00 · 195 阅读 · 0 评论 -
C的位运算符
与 &: 任何位用&运算与0结合结果为0,与1结合结果为其本身;或 | : 任何位用|运算与0结合结果为其本身,与1结合结果为1;异或 ^ : 任何位用^运算与0结合结果为其本身,与1结合则取反;原创 2010-05-23 11:37:00 · 149 阅读 · 0 评论 -
看到一个二进制转整数的方法
int val = 0;while (*str != /0) val = 2 * val + (*str++ - 0); str指向的是一个以字符形式存储的八位二进制数,减0是为了把字符转换成数字。这个方法就是把通过十进制整数求二进制数的除二求余的过程反过来。原创 2010-05-24 15:49:00 · 174 阅读 · 0 评论 -
菜单又一法
先上代码:char menu(void) //菜单函数{ puts("To choose a function, enter its letter label:"); puts("a) Show number of empty seats"); puts("b) Show list of empty seats"); puts("c) Show alphabetica原创 2010-05-22 10:14:00 · 173 阅读 · 0 评论 -
fgets()函数
fgets()函数原型:fgets(char * s, int size, FILE * stream);意思是从stream指向的文件中读取(size-1)那么长的字符串,然后存入s数组里。为什么是(size-1)?因为fgets()函数读完后会自动在最后加一个‘/0’怎样算读完?分三种情况:1. 当读取(size-1)个字符时没遇到换行符‘/n’或EOF原创 2010-05-20 11:09:00 · 153 阅读 · 0 评论 -
利用指向函数的指针来做菜单并实现其他函数的调用
首先声明四个函数: int fun1 (int, int);int fun2 (int, int);int fun3 (int, int);int fun4 (int, int); 然后用typedef定义类型:typedef int (*ptype) (int, int); 然后建立包含四个函数地址的指针数组:ptype pfun[4] = {fun1, fun2原创 2010-05-18 15:51:00 · 306 阅读 · 0 评论 -
C的五个存储类
存储类就是用于存储程序数据的内存的类型,由三个属性来表示:存储时间、作用域和链接。存储时期描述的是变量占用内存的时间,有静态的、自动的和分配的三种作用域是变量起到作用的范围,有代码块作用域和文件作用域两种链接说明该变量可以被哪些地方引用,有空链接、内部链接和外部链接三种 下面是五种存储类的属性: 存储类 时期原创 2010-05-15 11:25:00 · 188 阅读 · 0 评论 -
C Primer Plus里关于文件结尾判断的范例
当尝试从文件读入字符时,getc()函数会返回EOF,所以程序会在下一次读取时才会发现文件结尾。此时程序在试图读取空文件,可能会发生一些问题。所以应当在循环入口处进行判断。 int ch;FILE * fp;fp = fopen ("test","r");while ((ch = getc(fp) != EOF){ putchar (ch);}原创 2010-05-16 22:35:00 · 152 阅读 · 0 评论 -
C Primer Plus 第11章 字符串和字符串函数 小结
一、字符串初始化方式 //第一种:大小确定的情况char string1[10] = "I am a boy";//第二种:自动计算大小char string2[] = "I am a boy";//第三种:初始化一个指针char *string3 = "I am a boy";//第四种:初始化一个指针数组char *string4[10] = "I am原创 2010-05-13 09:09:00 · 249 阅读 · 0 评论 -
sprintf函数的用法
自《CSDN 社区电子杂志——C/C++杂志》在将各种类型的数据构造成字符串时,sprintf 的强大功能很少会让你失望。由于sprintf 跟printf 在用法上几乎一样,只是打印的目的地不同而已,前者打印到字符串中,后者则直接在命令行上输出。这也导致sprintf 比printf 有用得多。sprintf 是个变参函数,定义如下:int s转载 2010-05-10 23:12:00 · 399 阅读 · 1 评论 -
折半查找法
<br />需先声明一个数组,而且要先排序,最好是升序。<br />查找时,先将输入值x与数组的中间元素比较。如果x小于中间元素的值,则在该数组的前半部分查找;否则,在后半部分找。所以在两种情况中都要先与中间值比较,判断条件也就是这个了。下面这个范例摘自“C Programming Language”:<br />int binsearch(int x, int v[], int n){ int low, high, mid; low = 0; high = n - 1; while (原创 2010-06-06 10:44:00 · 213 阅读 · 0 评论