![](https://img-blog.csdnimg.cn/20201014180756754.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
C语言
orange_wolf
这个作者很懒,什么都没留下…
展开
-
高级字符串查找
(以下三个函数都需要添加头文件)1.查找一个字符串前缀strspn和strcspn函数用于在字符串的起始位置对字符计数。他们的原型如下:size_t strspn( char const *str, char const *group );size_t strcspn( char const *str, char const *group );group字符串指定一个或多个字原创 2015-11-07 12:56:48 · 505 阅读 · 0 评论 -
可变参数列表:stdarg宏
可变参数列表是通过宏来实现的,这些宏定义于stdarg.h头文件,它是标准库的一部分。这个头文件声明了一个类型va_list和三个宏--va_start、va_arg和va_end。我们可以声明一个类型为va_list的变量,与这几个宏配合实用,访问参数的值。原创 2015-11-06 18:07:29 · 481 阅读 · 0 评论 -
”函数指针”作为“函数参数”传送时的格式
小细节原创 2015-10-02 20:18:09 · 539 阅读 · 0 评论 -
指针和数组的区别
我们知道,声明和定义是不一样的。声明只是告诉编译器有这样一个对象存在,而定义不仅告诉编译器有这个对象,还为这个对象分配内存。同时我们也知道,指针只是指向数据,而数组则是保存数据。在很多情况下,数组和指针可以混用,比如int arr[512];int *p = arr;p[0] = 1;以上代码是可以正确运行的。但如果把指针和数组完全混为一谈,有时候还是会令人苦恼的。一个诡异的BUG请看如下代码:原创 2016-02-14 10:39:20 · 315 阅读 · 0 评论 -
C语言获取目录下目录&文件列表
数据结构struct dirent{ long d_ino; /* inode number 索引节点号 */ off_t d_off; /* offset to this dirent 在目录文件中的偏移 */ unsigned short d_reclen; /* length of this d_na原创 2016-02-16 21:34:07 · 1917 阅读 · 0 评论 -
NULL & NUL in C
NULL: 定义为0或0L或(void *)0,用于指示一个指针值是空,即什么都不指;‘\0’: 用且只用字符串结束符;NUL : 0x00,0值字符,可以用于结束ASCII字符串,和’\0’类似,但是在c/c++中没有定义,如果要使用的话,需要自定义为 #define NUL ‘\0’;EOF :通常定义为-1, 文件结束符标志,一般是ctrl+z.NULL是在 stddef.h 头文件中专门为空原创 2016-02-03 22:39:23 · 380 阅读 · 0 评论 -
C语言中函数如何返回处理后的结果?
在c语言中,自动变量在堆栈中分配内存,当包含自动变量的函数或代码块退出时,它们所占用的内存便被回收。被回收的内存可能会被马上覆盖,也可能等到很久以后才会被覆盖,这取决于堆栈中先前的自动变量位于何处,下一个函数/代码块声明的变量/写入的内容等条件,所以如果有以下代码:char * func(){ ... char buffer[512]; ... return buf原创 2016-02-04 09:32:01 · 1279 阅读 · 0 评论 -
如何排序10亿个数--外排小试
0.思路10亿个32位整数需要4G左右的内存,一次性载入内存是不现实的,必须要采用外排。第一次接触,当然是从最简单的办法入手。 我们可以利用大容量的外存作为中转,将10亿个数切分成小块,每一块排序好后写入外存。 切分完成后,对这些小块进行归并排序。同时在归并排序过程中,获得最大(小)值将实时写入文件,这样就可以保证低内存占用。 注:下面的例子为升序排序1.切分10亿个数假设’billion’原创 2016-03-16 20:04:00 · 7946 阅读 · 0 评论