C语言

C语言 void 万能类型

C中void类型其实是一种万能类型,也就是说我们的void可以代表任意一种类型,也就是说他的范围要比具体的一种类型要宽广,例如:int*p=NULL;void*ptr=p;//这是可以的,因为void*类型包含了int*类型,但是你要在使用ptr之前必须要强制转化为确定的类型那反过来又怎么理解呢?void*ptr=NU...
代码星球·2021-01-24

C语言实现银行家算法

  #include<stdio.h>#include<stdlib.h>#include<string.h>#include<stdbool.h>//bool类型intN=0;//进程数目intM=0;//资源数目int*Available;//可利...

C语言出现 "initializer element is not constant" 错误的原因

当在全局变量定义一个指针变量,并动态分配内存后,发现竟然编译不过去,并提示""initializerelementisnotconstant"":char*buf=malloc(1024);intmain(){return0;}; 后来知道了,不能将全局变量初始化为一个无法在编译时期确定的值。再想想暑假学习的...

Linux/UNIX编程:使用C语言实现ls命令

刚好把Linux/UNIX编程中的文件和IO部分学完了,就想编写个ls命令练习一下,本以为很简单,调用个stat就完事了,没想到前前后后弄了七八个小时,90%的时间都用在格式化(像ls-l中的对齐)输出了,反反复复改了好几遍。一共实现了常用的四个选项:-a-h-l-d。可以从命令行参数中同时接受多个目录和文件,然后分开...

C语言宏的神奇写法:语句块作为参数,算半个函数式编程?

我想要写几个循环做测试代码,每次都写`for(size_ti=0;i<n;i++)`很烦人,然后就灵机一动,能不能用宏实现,然后就写出了:#definerepeat(n,statements)for(size_ti=0;i<n;i++){statements}然后竟然真的可以执行指定的语句(块),像发现了新...

沃尔夫勒姆自动机时空图输出 C语言实现

1#include<stdio.h>2#include<stdlib.h>3#include<time.h>4#include<conio.h>567//行宽度8#defineROW_LEN3891011//比特位域结构12typedefstructbitsbits;13...

Sunday串匹配算法 C语言实现

1unsignedchar*sunday(void*a_buf1,2unsignedintlen1,3void*a_buf2,4unsignedintlen2){56unsignedchar*buf1=(unsignedchar*)a_buf1;7unsignedchar*buf2=(unsignedchar*)a_b...

【C语言入门教程】2.1 数据类型(5种基本数据类型),聚合类型与修饰符

C语言有5种基本的数据类型,分别为字符型、整型、单精度浮点型、双精度浮点型、空类型。在不同的操作系统或硬件平台中,这些数据类型的值域范围和所占用的内存是有差异的。这种差异影响了C语言的可移植性能,但如果能深入理解数据类型的构成,则可以最大程度避免该问题。 2.1.1基本数据类型的字长与范围字长是指数据所占用内...

【C语言入门教程】1.3 C语言“32个”关键字

关键字是已被C语言标准作为命令、数据类型或者固定函数名的字母组合。关键字不能被用做变量名或函数名。下面列举了C语言的32个关键字,它们遵循C语言的语法使用,形成了C程序设计语言。 序号 关键字说明 1 auto  2 break  ...

【C语言入门教程】1.1 基本程序结构

基本程序结构就是从上至下顺序执行的程序,C语言程序必须有且只有一个主函数,程序从主函数开始执行,直到主函数结束。下例是根据半径求圆形面积的程序源代码。#include<stdio.h>#definePI3.14intmain(){    floatr,s; ...

【C语言入门教程】1.2 函数库 和 链接

程序员可以不需要从头开始设计每一个函数,完成用C语言命令所实现的函数非常罕见。因为所有的C语言编辑器都提供能完成各种常见任务函数,如printf()函数等。C语言编译器的实现者已经编写了大部分常见的通用函数,这些函数根据其意义分类,分别放在头文件中。如stdio.h头文件存放的是输入输出相关的函数,math.h头文件存...

【C语言】 Linux下编译提示pow未定义引用

如下代码:#include<stdio.h>//调用基本输入输出函数库#include<math.h>#definePI3.14//定义常量floatarea(floatr)//定义{floats;s=PI*pow(r,2);returns;}intmain(){floatr,s;printf(...

【C语言入门教程】目录/大纲

第一章C语言编程基础1.1基本程序结构1.2函数库和链接1.3C语言“32个”关键字 第二章数据类型、运算符和表达式2.1数据类型(5种基本数据类型),聚合类型与修饰符2.2常量与变量2.3整型数据2.4浮点型数据2.5字符型数据2.6运算符2.7表达式2.8C语言的预处理命令2.9小结 第三章程序...

C语言的运算符、位操作

+-*/(加减乘除)>>=<<=(大于大于等于小于小于等于)==!=(测试等于测试不等于)&&||!(逻辑与逻辑或逻辑非)>><<(位右移位左移)&!(按位与按位或)^~(按位异或按位取反)  C/C++位操作[写在前面]^异或...
代码星球·2021-01-16

【C语言入门教程】7.4 共用体

7.4共用体共用体又称为联合体,是由不同的数据类型组成的一个整体。与结构体不同的是,共用体每次只能使用其中一个成员。结构体的总长度是结构体所有成员长度之和,共用体的总长度是其中最长一个数据类型的长度,共用体的所有成员共享这一存储空间。在一些场合中,只需要使用某一类型的变量而其他类型的变量暂时不需要使用。当使用另一类型变...
代码星球·2021-01-16