随笔分类 - C语言
一些C语言的知识。
摘要:1. 区别定义和声明定义:只能出现在一个地方。确定对象的类型并分配内存,用于创建新的对象。例如int my_array[100];声明:可以多次出现。描述对象的类型,用于指代其他地方定义的对象(例如在其他文件里)。例如:extern int my_array[];2. 指针和数组的访问机制数组:ch...
阅读全文
摘要:在ANSI C中,qsort函数的原型是#include void qsort(void *base, size_t nmemb, size_t size, int (*compar) (const void *, const void *));解释:qsort函数对含有nmemb个元素的数组进行排...
阅读全文
摘要:使用C语言处理行输入的时候,使用fgets()。现在我要在某行输入“ENDOFINPUT”的时候,终止处理。所以果断就写了以下:char buf[256];fgets(buf, 256, stdin);while ( strcmp(buf, "ENDOFINPUT") != 0) { ... }按理...
阅读全文
摘要:1. 几个C语言声明的分析char (*j)[20];j = (char(*)[20]) malloc(20); // j是指向数组的指针const int * grape;int const * grape;int * const grape_jelly;const int * const gra...
阅读全文
摘要:1. 一段代码,第一次执行时的行为与以后执行时不同:1 generate_initializer(char * string)2 {3 static char separator = ' ';4 printf("%c %s \n", separator, string);5 ...
阅读全文
摘要:1. C语言的许多特性是为了方便编译器设计者而建立的。于是C语言的语言特性有:数组下标从0而非1开始;C语言的基本数据类型直接与底层硬件相对应;auto关键字只对创建符号表入口的编译器设计者有意义;表达式中的数组名可以看作是指针;float被自动扩展为double(ANSI C中不再如此);不允许嵌...
阅读全文
摘要:尽管ISO C99使用了非常简单的并且具备移植性的样例描述了rand函数和srand函数的实现。但是在具体的C语言函数库的实现上,由于考虑到运行效率以及线程安全,代码就稍微多了一些。这里以glibc 2.18为例。在stdlib目录下,我们找到rand.c,内容如下:1 /* Return a ra...
阅读全文
摘要:我们在编程实现算法的过程中,往往需要使用到随机数。由于计算机是一台以逻辑为基础的机器,没法做到真正的随机(大概量子计算机可以?)。所以计算机生成的是伪随机数,供我们使用。我们使用C语言的rand函数,生成的也是伪随机数。一个简单的示范如下: 1 #include 2 #include 3 #in...
阅读全文
摘要:在C语言的头文件time.h中,定义了日期和时间操作的数据类型和操作。在此处,我们参考MinGW(Minimalist GNU for Windows)中的time.h。首先我们看看time.h所声明的数据类型: 1 typedef long clock_t; 2 3 typedef ...
阅读全文

浙公网安备 33010602011771号