
C语言教程
文章平均质量分 84
C语言基础
行孤、
就写博客做做笔记,写一下我自己的想法。
展开
-
C语言makefile文件
文章目录一、makefile的编写二、make命令三、makefile文件中的变量在软件的工程中的源文件是很多的,其按照类型、功能、模块分别放在若干个目录和文件中,哪些文件需要编译,那些文件需要后编译,那些文件需要重新编译,甚至进行更复杂的功能操作,这就有了我们的系统编译的工具。在linux和unix中,有一个强大的实用程序,叫make,可以用它来管理多模块程序的编译和链接,直至生成可执行文件。make程序需要一个编译规则说明文件,称为makefile,makefile文件中描述了整个软件工程的编译规原创 2021-01-27 12:16:31 · 1664 阅读 · 0 评论 -
C语言目录和文件操作扩展
文章目录一、access库函数二、stat库函数1、stat结构体2、stat库函数三、utime库函数四、rename库函数五、remove库函数本章节扩展一些目录和文件操作的更多知识,因为这些知识涉及到时间操作,所以放在时间操作之后的章节中介绍。一、access库函数access函数用于判断当前操作系统用户对文件或目录的存取权限。包含头文件:#include <unistd.h>函数声明:int access(const char *pathname, int mode);原创 2021-01-27 11:28:19 · 154 阅读 · 1 评论 -
C语言获取系统错误
文章目录一、strerror函数二、errno的细节1、调用库函数失败不一定会设置errno2、errno不能作为调用库函数失败的标志3、程序员可以不用errno三、课后作业四、版权声明我们在写程序的时候需要调用C语言提供的库函数,并通过函数的返回值判断调用是否成功。其实在C语言中,还有一个全局变量errno,存放了函数调用过程中产生的错误码。为防止和正常的返回值混淆,库函数的调用一般并不直接返回错误码,而是将错误码(是一个整数值,不同的值代表不同的含义)存入一个名为errno 的全局变量中,errno转载 2021-01-26 11:15:13 · 430 阅读 · 0 评论 -
C语言编译预处理
文章目录一、预处理指令二、包含文件三、宏定义指令1、无参数的宏2、带参数的宏四、条件编译1、#ifdef2、#ifndef3、#undef五、课后作业六、版权声明C语言由源代码生成可执行程序的过程如下:C源程序->编译预处理->编译->优化程序->汇编程序->链接程序->可执行文件其中编译预处理阶段,读取C源程序,对其中的预处理指令(以#开头的指令)和特殊符号进行处理。或者说是扫描源代码,对其进行初步的转换,产生新的源代码提供给编译器。预处理过程先于编译器对源代码转载 2021-01-26 11:13:39 · 1278 阅读 · 1 评论 -
C语言时间操作
文章目录一、time_t别名二、time库函数三、tm结构体四、localtime库函数五、mktime库函数在这里插入图片描述六、程序睡眠七、精确到微秒的计时器1、精确到微秒的timeval结构体2、时区timezone 结构体3、gettimeofday库函数八、应用经验九、课后作业十、版权声明UNIX操作系统根据计算机产生的年代和应用采用1970年1月1日作为UNIX的纪元时间,1970年1月1日0点作为计算机表示时间的是中间点,将从1970年1月1日开始经过的秒数用一个整数存放,这种高效简洁的时转载 2021-01-25 12:04:54 · 413 阅读 · 1 评论 -
遍历目录下的所有文件
遍历目录下的所有文件信息,那么目录可能包含子目录,如果打开的还是目录,那么就要再将这个子目录打开。所以这给需要用到递归,其实很多的遍历是经常需要用到递归,因为遍历的不止有一层。int ReadDir(const char *strpathname){while(1){if((stdinfo=readdir(dir))==0) break; if(strncmp(stdinfo->d_name,".",1)==0) continue; //以.开始的文件不读,这是隐藏文件原创 2021-01-25 12:01:33 · 774 阅读 · 0 评论 -
C语言目录操作
文章目录一、获取当前工作目录二、切换工作目录三、目录的创建和删除四、获取目录中的文件列表1、包含头文件2、相关的库函数3、数据结构4、读取目录五、应用经验六、课后作业七、版权声明目录的操作不论是在嵌入式还是应用软件编程都是必不可少的,不同的开发语言可能略有不同,本章节主要是讨论在Linux系统下目录的一系列操作,以我的个人经验,创建目录和列出目录中的文件这两个功能用得最多。一、获取当前工作目录在shell中我们可以直接输入命令pwd来显示当前的工作目录,在C程序中调用getcwd函数可以获取当前的工作转载 2021-01-25 10:09:26 · 843 阅读 · 0 评论 -
C语言文件操作
文章目录一、文本数据和二进制1、文本数据2、二进制数据3、文本文件和二进制文件二、打开文件1、文件指针2、打开文件3、关闭文件4、注意事项三、文本文件的读写1、向文件中写入数据2、从文件中读取数据四、二进制文件的读写1、向文件中写入数据2、从文件中读取数据3、注意事项五、文件定位1、ftell函数2、rewind函数3、fseek函数4、注意事项六、文件缓冲区七、标准输入、标准输出和标准错误八、课后作业九、版权声明准确来说是一个卧底去偷取信息然后将信息传回。然后总部就可以根据这些信息操作了。 对计算机原创 2021-01-10 22:15:50 · 753 阅读 · 0 评论 -
C语言动态内存管理
文章目录一、相关的库函数1、malloc 函数2、free 函数二、内存被耗尽三、野指针1、指针变量未初始化2、指针释放后之后未置空四、应用经验1、数组申明的改进2、链表3、我的建议五、课后作业六、版权声明在C语言中,编写程序的时候不能确定内存的大小,希望程序在运行的过程中根据数据量的大小动态的分配内存。动态内存管理,就是指在程序运行过程中动态的申请和释放内存空间。C语言允许程序动态管理内存,需要时随时开辟,不需要时随时释放。内存的动态管理是通过调用库函数来实现的,主要有malloc和free函数。一转载 2020-12-30 16:05:39 · 114 阅读 · 0 评论 -
C语言main函数的参数
文章目录一、main函数的参数二、C程序的规范写法三、envp参数四、课后作业五、版权声明程序运行的时候,有些需要带参数,有些不带参数,例如linux操作系统的命令,它们本质上就是C程序。1)Linux命令中,无参数的不多。pwd #显示当前目录clear #清屏2)大部Linux命令是带参数的。cp book1.c book2.cmkdir /tmp/dnamemv book3 /tmp/dname/book3rm -rf /tmp/dname各位现在是在C语言学习的初级阶段转载 2020-12-30 13:56:15 · 591 阅读 · 0 评论 -
C语言格式化输出
文章目录一、格式化输出1、类型符(type)2、宽度(width)3、对齐标志(flags)4、精度(prec)二、格式化输出到字符串三、C语言代码的多行书写四、课后作业五、版权声明一、格式化输出格式化输出的函数有printf、sprintf和snprintf等,功能略有不同,使用方法大同小异,本章节我们先以printf为例。对于 printf 函数,相信大家并不陌生。之所以称它为格式化输出函数,该函数的声名如下:int printf(const char *format, ...)大家看到pr转载 2020-12-02 16:10:58 · 2342 阅读 · 0 评论 -
C语言结构体
文章目录一、结构体的概念二、结构体变量三、占用内存的情况四、结构体的变量名五、结构体初始化六、成员的访问(使用)七、结构体数组八、结构体指针九、结构体的复制十、结构体作为函数的参数十一、枚举和共同体十二、memset和bzero函数1、memset函数2、bzero函数十三、课后作业十四、版权声明一、结构体的概念前面的教程中我们讲解了变量和数组(array),变量是一个一个定义的,数组是一组具有相同类型的变量的集合。但在实际的工作和生活中,为了表达一个数据集,需要用不同数据类型的变量。例如超女基本信息,转载 2020-12-01 16:36:36 · 149 阅读 · 0 评论 -
C语言数据类型转换
文章目录一、自动类型转换1、操作数中没有浮点型数据时2、操作数中有浮点型数据时3、赋值运算符两侧的类型不一致时4、右值超出左值类型范围时二、强制类型转换三、课后作业四、版权声明计算机进行算术运算时,要求各操作数的类型具有相同的大小(存储位数)及存储方式,不能将char 型( 1 字节)数据与 int 型(2、4或8字节)数据直接参与运算;由于存储方式的不同,也不能将 int 型数据与 double 型数据直接参与运算。然而,由于 C语言的灵活性,在一个表达式或一条语句中,允许不同类型的数据混合运算。C转载 2020-12-01 10:38:15 · 182 阅读 · 0 评论 -
C语言字符串
文章目录一、字符串的概念二、占用内存的情况三、字符串的初始化四、字符串与指针五、字符串的结尾标志六、字符串的输出七、字符串越界八、字符串常用的库函数1、获取字符串的长度(strlen)2、字符串复制或赋值(strcpy)3、字符串复制或赋值(strncpy)4、字符串拼接(strcat)5、字符串拼接(strncat)6、字符串比较(strcmp、strncmp)7、字符查找(strchr、strrchr)8、字符串查找(strstr)九、应用经验1、留有余地2、变量初始化3、位置(地址)偏移的用法4、不要转载 2020-11-19 19:50:07 · 270 阅读 · 0 评论 -
C语言浮点数
文章目录一、浮点数的概念二、点用内存的情况三、浮点数的精度1、测试float类型2、测试double类型3、测试long double类型4、测试总结四、浮点数的输出五、常用的库函数六、整数转换为浮点数七、应用经验八、科学计数法九、课后作业十、版权声明一、浮点数的概念浮点数也称小数或实数。例如,0.0、75.0、4.023、0.27、-937.198 都是合法的小数。C语言中采用float和double关键字来定义小数,float称为单精度浮点型,double称为双精度浮点型,long double更转载 2020-11-17 19:19:07 · 5617 阅读 · 0 评论 -
编写c遇到的问题
1.srand(time(0))放在循环体中无法生成随机数——生成52个随机数2.c原创 2020-11-17 15:40:08 · 116 阅读 · 0 评论 -
C语言字符
文章目录一、ASCII码表1、ASCII 控制字符 (字符编码: 0-31)2、ASCII 可打印字符 (字符编码: 32-127)3、转义字符在这里插入图片描述二、字符就是整数三、常用的库函数四、课后作业九、版权声明在实际开发中,程序员很少用单个字符来表示数据,字符的意义主要作为数组的时候可以形成一个字符串。在本章节中,我们重点介绍字符与整数之间的关系和ASCII码的相关知识。字符类型char,只能用单引号’ ‘来包围,不是用双引号" “包围。而字符串只能用双引号”"包围,不能用单引号’ '包围。转载 2020-11-14 19:08:31 · 654 阅读 · 0 评论 -
C语言整数
文章目录一、整数的概念二、整数的取值范围三、整数的输出四、二进制数、八进制数和十六进制数的书写1、二进制2、八进制3、十六进制4、需要注意的坑五、常用的库函数六、数据类型的别名七、随机数1、生成随机数2、生成一定范围随机数八、课后作业九、版权声明一、整数的概念整数是我们生活中常用的数据类型,也是编程中常用的一种数据,C语言使用int关键字来定义整数变量(int是 integer 的简写)。在定义变量的时候,可以加signed、unsigned、short和long四种修饰符。signed:有符号的,转载 2020-11-12 19:27:09 · 4413 阅读 · 0 评论 -
C语言gdb调试
文章目录一、gdb的安装二、调试前的准备三、基本调试命令四、课后作业九、版权声明程序员写在编写程序的时候不可能是一帆风顺的,gcc编译器可以发现程序代码的语法错误,但不能发现程序的业务逻辑错误,调试程序是软件开发的内容之一。调试程序的方法有很多种,例如可以用printf语句跟踪程序的运行步骤和显示变量的值,本章节介绍一个功能强大的调试工具gdb。一、gdb的安装CentOS系统中,用root用户登录服务器,执行以下命令安装或升级。yum -y install gdb 注意,如果您的服务器没转载 2020-11-12 18:54:42 · 146 阅读 · 0 评论 -
C语言指针
文章目录一、变量的地址二、指针三、对指针赋值四、通过指针操作内存变量五、再来讨论函数的参数传递六、空指针七、数组的地址八、地址的运算九、指针占用内存情况十、指针的其它知识十一、小结十二、课后作业十三、版权声明一、变量的地址内存变量简称变量,在C语言中,每定义一个变量,系统就会给变量分配一块内存,而内存是有地址的。如果把计算机的内存区域比喻成一个大宾馆,每块内存的地址就像宾馆房间的编号。C语言采用运算符&来获取变量的地址。请看下面的示例。示例(book50.c)/* * 程序名:book5转载 2020-11-11 21:13:25 · 216 阅读 · 0 评论 -
C语言函数
文章目录一、函数的概念1、函数的概念2、函数的分类二、自定义函数的声明三、自定义函数的定义四、自定义函数代码的组织1、非通用能功的函数2、通用能功的函数3、注意事项五、库函数六、需要包含哪些头文件七、调用函数的方法八、函数调用的过程九、函数参数的传递十、const约束十一、应用经验1、如何寻找函数2、测试函数的功能十二、课后作业十三、版权声明一、函数的概念1、函数的概念每个C程序都至少有一个函数,即main主函数 ,如果程序的任务比较简单,全部的代码都写在main函数中,但是,在实际开发中,程序的任转载 2020-11-10 19:04:41 · 993 阅读 · 0 评论 -
C语言数组
文章目录一、数组二、占用内存的大小三、数组的初始化四、注意事项五、在for循环中数组六、二维数组七、多维数组八、字符串1、字符串的概念2、字符串的初始化3、字符串的赋值4、关于字符串结束符0的讨论5、字符串数组十、课后作业十一、版权声明先来看一个需求,超女选秀一共有5人参加,输入每位超女的体重并保存在变量中,最后计算出超女的的平均体重。示例(book40.c)/* * 程序名:book40.c,此程序用于演示没有数组的情况下的多个变量求和 * 作者:C语言技术网(www.freecplus.n转载 2020-11-08 16:33:35 · 177 阅读 · 0 评论 -
C语言循环
文章目录一、程序结构二、while循环三、do while循环四、循环的跳转五、while循环的应用六、for循环七、for循环嵌套八、循环的选择九、死循环十、应用技巧十一、课后作业一、程序结构在C语言程序中,一共有三种程序结构:顺序结构、选择结构(if和switch分支结构)、循环结构;1)顺序结构从头到尾一句接着一句的执行下去,直到执行完最后一句;2)选择结构执行到某个节点时,根据判断条件的结果来决定执行分支的方向,由if和switch实现。3)循环结构循环结构有一个循环体,循环体里是一转载 2020-09-23 19:20:26 · 145 阅读 · 0 评论 -
C语言switch分支结构
文章目录一、if else的不足二、switch语句三、注意事项四、课后作业一、if else的不足C语言虽然没有限制 if else 能够处理的分支数量,但当分支过多时,用 if else处理会不太方便,而且容易出现 if else配对出错的情况。例如,输入一个整数,输出该整数对应的星期几的中文表示。 if (day == 0) printf("星期天\n"); else if (day == 1) printf("星期一\n"); else if (day == 2)原创 2020-09-23 17:22:30 · 105 阅读 · 0 评论 -
C语言if分支结构
文章目录一、关系运算符二、条件判断三、只使用if语句四、多个if else语句五、if语句的嵌套六、保持良好的编程习惯七、逻辑运算符八、逻辑表达式的书写九、不得不说的逻辑非十、三目运算符十一、课后作业一、关系运算符在讲if条件分支结构之前,先了解关系运算(RelationalOperators),用于判断条件,决定程序的流程。关系数学中的表示C语言的表示小于<<小于等于≤<=大于>>大于等于≥>=等于转载 2020-09-11 17:11:07 · 728 阅读 · 0 评论 -
C语言运算符
文章目录一、C语言的运算符二、算术运算符三、赋值运算符四、sizeof运算符五、运算符的优先级一、C语言的运算符C语言有六种运算符,如下:1)算术运算符;2)赋值运算符;3)sizeof运算符;4)关系运算符;5)逻辑运算符;6)位运算符。本章将只介绍算术运算符、赋值运算符和sizeof运算符,关系运算符和逻辑运算符放在其它章节中介绍,位运算符极少使用,了解即可,不深入学习。二、算术运算符下表显示了 C 语言支持的所有算术运算符。假设变量 A 的值为 18,变量 B 的值为5,则:转载 2020-09-11 16:46:53 · 333 阅读 · 0 评论 -
C语言输入和输出
文章目录一、数据输入二、数据输出三、断章取义四、printf输出1、输出描述性的文字2、输出整数3、输出字符4、输出浮点数5、输出字符串6、输出多个内容7、示例(book12.c)五、scanf输入1、输入整数2、输入字符3、输入浮点数4、输入字符串5、输入多个内容6、示例(book13.c)六、注意事项七、课后作业八、版权声明一、数据输入编写程序的主要目的就是为了处理数据。数据从哪里来?数据的来源有很多种方式,如从磁盘文件中读取数据、从数据库中读取数据、从网页中抓取数据等,还有一种原始的方式就是从键盘转载 2020-09-09 19:51:42 · 445 阅读 · 0 评论 -
C语言常量、变量和关键字
文章目录一、一切都是数据1、静态数据2、动态数据(临时数据)二、常量三、变量1、整数型、字符型、浮点型变量2、字符串变量3、变量的命名四、C语言的关键字五、变量的初始化1、整数型、字符型、浮点型变量初始化2、字符串变量的初始化六、变量的赋值七、多变量操作1、多个变量的定义2、多个变量的赋值八、const约束一、一切都是数据对计算机来说,图片、文字、音乐、视频等一切都是数据,在计算机中以二进制的0和1存储。我们编写程序的目的就是告诉计算机如何输入、处理、传输、存储和展示数据。数据分为静态数据和动态数据转载 2020-09-09 16:36:56 · 492 阅读 · 0 评论 -
C语言数据类型
文章目录一、基本类型1、字符型(char)2、整型(int)3、浮点型(float)二、字符串三、构造类型四、指针类型一、基本类型C语言的基本数据类型包括字符型、整数型、浮点型。1、字符型(char)描述单个字符(一个字节),用半角的单引号包含起来,如’a’、‘A’、‘1’、’$'等,键盘能输入的英文和半角的符号都是字符。'A' 'B' 'C' ...... 'Z''a' 'b' 'c' ...... 'z''0' '1' '2' ...... '9''~' '!转载 2020-09-09 15:45:25 · 267 阅读 · 0 评论 -
C语言程序的基本结构(十分适合新手)
文章目录一、C语言基础知识的学习方法二、C语言程序开发的流程三、安装C语言的编译器四、C程序的基本结构1、程序的注释2、预处理指令3、主函数的入口4、主函数体五、编译并执行 C 程序六、知识总结七、课后作业八、版权声明一、C语言基础知识的学习方法1)我的课程内容是精心整理的,某些知识点可能没有提到应用场景,但绝对不会是没用的知识。课程中没有提到的知识可以了解一下,但不必深入学习,意义不大。2)学习不要贪快,欲速则不达的道理大家应该明白,学习的重点是培养写程序的感觉。3)不要记笔记,不要记关键字,不要转载 2020-09-05 17:35:07 · 1926 阅读 · 0 评论