随笔分类 - C语言
摘要:该函数用于判定已排序的数组v中是否存在某个特定的值x。数组v的元素必须以升序排列。如果v中包含x,则该函数返回x在v中的位置(介于0~n-1之间的一个整数);否则,该函数返回-1。/* binsearch: find x in v[0] v[mid]) low = mid + 1; else /* found match */ return mid; } return -1; /* no match */ }int binsearch(char *word, str...
阅读全文
摘要:最近用Uart_Printf函数输出格式化字符,用到C语言字符串格式化显示。符号 作用 ────────────────────────── %d 十进制有符号整数 %i 输入整数,可以是带前导0的八进制数或0x的十六进制数 %u 十进制无符号整数 %f 浮点数 %s 字符串 %c 单个字符 %p 指针的值(内存地址) %e 指数形式的浮点数 %x, %X 无符号以十六进制表示的整数 %0 无符号以八进制表示的整数 %g, %G 自动选择合适的表示法 ━━━━━━━━━━━━━━━━━━━━━━━━━━格式字符串的一般形式为:[标志][输出最小宽度][.精度][长度]类型其中...
阅读全文
摘要:C语言中所谓的字符串不过是字符数组,后跟一个0x00字符标识结尾,所以反转起来很容易,只要一个循环依次将第一个字符和最后一个字符交换,第二个字符和倒数第二个字符交换……如果最中间有两个字符(即需要反转的字符串长度为偶数),那就交换,如果最中间有一个字符(即需要反转的字符串长度为奇数),那就不需要碰它。还有就是最后一个用来标识字符串结尾的0x00字符不用动它。代码如下:void reversestr(char *str){ int i = 0; char temp; char *s1,*s2; while(*str != '\0') { i++;str++; } str -=..
阅读全文
摘要:定义结构体:struct LNode { ElemType data; struct LNode *next; };typedef struct LNode *LinkList; /* 另一种定义LinkList的方法 */ 链表初始化:Status InitList(LinkLis...
阅读全文
摘要:冒泡排序法:private static void BulleSort(){ int i, j; for (i = 1; i = i; j--) { if (data[j] 0 && temp k) { j--; } int temp = k; k = array[j]; array[j] = temp; ...
阅读全文
摘要:关于malloc的理解:#include #include void getmemory(char *p){ p=(char *) malloc(100); strcpy(p,"hello world");}int main( ){ char *str=NULL; getmemory(str...
阅读全文
摘要:结构体与结构体之间的赋值,在标准的ANSI C语言里是不允许的。Keil也好,IAR也好,AVRstudio,Vc++等等的这些个IDE环境,都是基于ANSI C语言的。所不同的是,它们在C语言的基础上做了扩展,比如说 Keil C51,就扩展了 bit 这种数据类型,Avrstudio就扩展 二进制数据表示方法 "0b",VC++扩展了结构体内允许带有函数变量,IAR则扩展了结构体相互赋值,Keil没有扩展结构体相互赋值这个功能。
阅读全文
摘要:不含位域:1) 结构体变量的首地址能够被其最宽基本类型成员的大小所整除;2) 结构体每个成员相对于结构体首地址的偏移量(offset)都是成员大小的整数倍,如有需要编译器会在成员之间加上填充字节(internal padding);3) 结构体的总大小为结构体最宽基本类型成员大小的整数倍,如有需要编译器会在最末一个成员之后加上填充字节(trailing padding)。含位域:1) 如果相邻位域字段的类型相同,且其位宽之和小于类型的sizeof大小,则后面的字段将紧邻前一个字段存储,直到不能容纳为止;2) 如果相邻位域字段的类型相同,但其位宽之和大于类型的sizeof大小,则后面的字段将从新
阅读全文
浙公网安备 33010602011771号