C
文章平均质量分 61
xhao014
这个作者很懒,什么都没留下…
展开
-
大小端问题
在计算机中存在两种字节序:大端和小端。大端是指计算机中表示一个数时高位在前,低位在后,也就是说低地址存放数据的高位部分,而高地址存放数据的低位部 分,如PPC就是属于这种类型的;相对的,小端是指计算机存储数据时低位在前,高位在后,即低地址存放数据的低位部分,高地址存放数据的高位部分,我们用的X86 CPU就是这样的。概念清楚后,我们可以用代码测试一下自己用的环境是大端还是小端:原创 2012-03-02 09:36:07 · 1120 阅读 · 0 评论 -
字节对齐问题
字节序问题关系到数据结构设计的是否合理,合理的数据结构设计可以节省内存空间,同时还能够提高数据访问效率,这在资源有限的其嵌入式系统中是非常重要的. 我们可以先看看这两个例子就大概了解了字节对齐的问题了。在PC机上char是占1个字节,而int是4个字节。#include #include void main(){ struct { unsign原创 2012-03-02 09:56:32 · 631 阅读 · 0 评论 -
sprintf的点滴
由于sprintf 跟printf 在用法上几乎一样,只是打印的目的地不同而已,前者(sprintf)打印到字符串中,后者(printf)则直接在命令行上输出。这也导致sprintf 比printf 有用得多。所以本文着重介绍sprintf,有时也穿插着用用pritnf。sprintf 是个变参函数,定义如下:int sprintf( char *buffer, const cha原创 2012-03-25 18:22:51 · 567 阅读 · 0 评论 -
C语言可以给字符数组赋值的方法
学了这么多年的C语言,突然发现连字符串赋值都出错,真的很伤心。char a[10];怎么给这个数组赋值呢?1、定义的时候直接用字符串赋值char a[10]="hello";注意:不能先定义再给它赋值,如char a[10]; a[10]="hello";这样是错误的!2、对数组中字符逐个赋值char a[10]={'h','e','l','l','o'};3、转载 2012-04-06 10:23:36 · 43875 阅读 · 3 评论 -
循环链表与约瑟夫问题
循环链表经常与约瑟夫问题涉及在一起,在解决约瑟夫问题之前,如果了解了循环链表(这里当然是指单向的了,不要想复杂了),那么约瑟夫问题就比较好解决了。1,循环链表的建立,打印。这里为了简单,只是开辟了5个空间,然后将其打印。#include #include typedef struct Link { int k; struct Link *next;}Li原创 2012-09-03 16:33:49 · 1049 阅读 · 0 评论 -
一个笔试题目,望更方便的算法
题目:unsigned int 型一个数组,按照比特位中“1”的个数对数组元素进行从小到大排序,如果含有“1”的个数相同,按从小到大排序,unsigned int 32位。 题目原意是写个函数就够了,不过为了验证,还是写了一个完整的程序,这样函数也好弄了嘛。当然,这个方法还是有点笨拙,望高手们再指点一二,改进下。那就不多说,直接贴代码了:#include #include原创 2012-10-07 22:03:56 · 746 阅读 · 0 评论 -
从长度指定的数组array中删除值等于v的元素
和之前一样,要求是一个函数,定义的是int remove(int *array, int n, int v){ //实现} 现在,我是写的一个main函数,删除数组中数字等于4的值。 #include #include #include #include int main(){ int a[8] = {3,4,5,7,2原创 2012-10-09 22:54:17 · 2182 阅读 · 0 评论 -
形参有没const的区别
形参前面有没const,这里还是有点区别的。分几个情况看看:知道实参如果按值传递,则形参接收的只是实参的一个拷贝,对这个拷贝的任何操作都不会去改变实参,那么此时它加不加const都是一样,所以在有这样一种情况“尽管函数的形参是const,但是编译器还是将它定义为普通的函数”,如:void fun(const int i);void fun(int i);是一样的,这时会出现“重定义原创 2012-10-24 15:44:55 · 3534 阅读 · 1 评论 -
C中链表的几种算法实现(持续中……)
对于链表大家应该都是很熟悉了,不过这种熟悉只是属于理论上,知道它怎么一回事,知道它的插入、删除等等,这里不过是只是给出它的实现。当然也会涉及到一些简单算法的实现。比如冒泡算法是最简单的,一般的做法就是一轮一轮的从A端把“每轮中的最小值”移向B端中,这样循环下来就形成了有序排列。当然我们也可以把“最小值”改变下,变成“最大值”,而它移动的方向当然也是可以变化的,这个是很灵活的。现在就拿冒泡算原创 2013-04-22 21:05:21 · 1086 阅读 · 0 评论