
C语言
文章平均质量分 85
Jacky_Feng
这个作者很懒,什么都没留下…
展开
-
【C语言】源代码的编译过程
探索一下从C源代码到二进制可执行文件生成中间各个过程具体做了哪些工作。原创 2019-09-13 22:25:16 · 8032 阅读 · 0 评论 -
【C语言】文件读写操作详细介绍
目录一、写文件(1)写文本文件 (2)写二进制文件(3)fprintf()函数二、写文件综合实例三、读文件(1)读文本文件(2)读二进制文件(3)fscanf()函数四、文件位置指针(1)fseek()函数(2)rewind()函数(3)ftell()函数四、读文件综合实例一、写文件文件分为文本文件和二进制文件,因为它们的存放形式不同,所以写文件的方法也不一样。(1)写文本文件在对文本文件进行写操作时,主要用到两个函数:...原创 2020-10-24 18:44:44 · 2584 阅读 · 0 评论 -
【C语言】计算机中的流和文件概述(文件的概念及打开关闭)
目录一、计算机中流二、文件1.文件的概念2.文件的分类3.文件的缓冲区 4.文件指针三、文件的打开和关闭一、计算机中流在C语言中,将在不同的输入/输出设备之间进行传递的数据抽象为“流”。当一段程序中调用scanf()函数时,会有数据经过键盘流入存储器,当调用printf()函数,会有数据从存储器流向屏幕。流实际上就是一个字节序列,输入函数的字节序列被称为输入流,输出函数的字节序列称为输出流。根据数据形式,输入输出流可以分为文本流(字符流)和二...原创 2020-10-23 21:35:53 · 2062 阅读 · 0 评论 -
【C语言】scanf函数详解(常见问题处理)
目录一、scanf函数介绍二、空白字符和非空白字符三、scanf函数使用注意事项四、scanf函数使用常见问题一、scanf函数介绍scanf()是C语言中的一个输入函数。与printf函数一样,都被声明在头文件stdio.h里,因此在使用scanf函数时要加上#include <stdio.h>。它是格式输入函数,即按用户指定的格式从键盘上把数据输入到指定的变量之中。1.函数原型:intscanf(constchar*restrictformat,....原创 2020-10-22 18:37:56 · 88754 阅读 · 3 评论 -
【C语言】共用体的定义与使用
目录一、共用体数据类型的定义二、共用体变量的定义三、共用体内存分配四、共用体变量的初始化和引用一、共用体数据类型的定义共用体类型同结构体类型一样,都属于构造类型,它在定义上与结构体类型十分相似,定义共用体类型的语法格式如下:union 共用体类型名称{ 数据类型 成员1; 数据类型 成员2; 。。。 数据类型 成员n;};【注释】union为共用体类型关键字,大括号中定义了共用体类型的成员项,每个成员项由数据类型和成员名组成。...原创 2020-10-22 14:57:13 · 7451 阅读 · 0 评论 -
【C语言】结构体指针与结构体数组
一、结构体指针与一般指针类似结构体也可以使用结构体指针进行引用使用。结构体指针的定义方式如下:struct Student stu = { 1001,"Li Lei",'M',1.87 }; //定义一个Student 的结构体变量stustruct Student *p=&stu; //定义一个Student的结构体指针变量来指向stu当程序中定义了一个指向结构体变量的指针,就可以通过“指针名->成员变量名”的方式访问结构体变量的成员。实例演示:#in...原创 2020-10-21 16:56:06 · 20731 阅读 · 3 评论 -
【C语言】typedef(给数据类型取别名)及typedef与#define的区别
目录一、typedef的概念及使用二、typedef 和 #define 的区别一、typedef的概念及使用1.定义:typedef关键字用于为现有的数据类型取别名,例如:int、double、指针、数组、结构体等数据类型,都可以用typedef关键字为它们另外取一个名字。使用typedef关键字可以方便程序的移植,降低代码对硬件的依赖。例如:有一个结构体的名字是 stu,要想定义一个结构体变量就得这样写:struct stu stu1;struct 看起来就是多余的原创 2020-10-21 15:52:02 · 5993 阅读 · 0 评论 -
【C语言】结构体类型和结构体变量(字节对齐)
目录一、结构体类型定义二、结构体变量的定义①先定义结构体类型,再定义结构体变量②在定义结构体类型的同时,定义结构体变量③直接定义结构体变量三、结构体变量的内存分配四、结构体变量的初始化五、结构体变量的引用一、结构体类型定义结构体是一种构造数据类型,可以把不同类型的数据整合在一起,每一个数据都称为该结构体类型的成员。使用结构体时,首先需要对结构体类型进行定义,结构体类型的定义如下所示:struct 结构体类型名称{ 数据类型 成员名1; ...原创 2020-10-19 22:22:33 · 6262 阅读 · 0 评论 -
【C语言】宏定义(不带参数的宏定义和带参数的宏定义)
目录一、不带参数的宏定义1.定义2.#undef 指令取消宏定义二、带参数的宏定义1.定义2.宏定义参数替换的注意事项三、带参数的宏定义和带参函数的区别一、不带参数的宏定义1.定义在程序中,经常会定义一些常量,例如圆周率3.1415、“ABC”等。如果这些常量在程序中频繁使用,难免会出现书写错误的情况。为了避免程序书写错误,可以使用不带参数的宏定义来定义这些常量。例如:#define PI 3.14159解析:#define是用来标识一个宏定义,标识符PI是原创 2020-10-17 23:51:12 · 5948 阅读 · 0 评论 -
【C语言】常用的字符串函数及相关函数的自我实现
目录一、常用的库函数1.strlen()函数2.strcpy() 函数3.strcmp()函数 4.strcat()函数5.strchr() 函数6.strrchr() 函数7.strstr() 函数二、常用字符串函数的自我实现一、常用的库函数1.strlen()函数用于求字符串的长度。strlen() 函数从字符串的开头位置依次向后计数,直到遇见'\0',然后返回计时器的值。最终统计的字符串长度不包括'\0'。头文件:string...原创 2020-10-12 23:53:01 · 416 阅读 · 0 评论 -
【C语言】字符串、字符数组、字符指针
目录一、字符数组(1)字符数组的定义(2)字符数组的初始化二、字符串(1)字符串的概念(2)用字符串初始化字符字符数组(3)获取字符串的长度三、字符串与指针四、字符数组与字符指针一、字符数组字符数组是存放字符数据的数组,每个元素都是单个字符。(1)字符数组的定义char 数组名[数组长度];//一维字符数组char 数组名[常量表达式1][常量表达式2];//二维字符数组(2)字符数组的初始化在数组定义的同时对数组中的元素进行赋值,这个过程原创 2020-10-12 20:49:10 · 5117 阅读 · 0 评论 -
【C语言】指针数组和二级指针
文章目录一、指针数组1.定义2.案例分析二、二级指针(1)指向指针变量的指针(2)指向指针数组的指针一、指针数组1.定义指针变量也是C语言中的一种变量,因此指针变量也可以构成数组。若一个数组中所有元素都是指针类型,那么这个数组就是指针数组。给数组中每个元素都存放一个地址。定义一维指针数组语法格式如下:类型名* 数组名[数组长度];例如:int* p[5];//定义了一个包含5个整型指针的指针数组指针数组是一个数组,那么指针数组的数组名是一个地址,它指.原创 2020-10-12 18:52:19 · 3726 阅读 · 0 评论 -
【C语言】打印水仙花数
题目:用C语言打印1000以内的水仙花数,“所谓“水仙花数”是指一个三位数,其各位数字立方和等于该数本身。 例如:153是一个“水仙花数”,因为153=1^3+5^3+3^3(1的三次方+5的三次方+3的三次方) 解题思路一:在100~1000以内的整数中逐个判断,先求出该数各个数位的数字,然后各个数位数字三次方和这个数比较,等于这个数说明为水仙花数解法1:用...原创 2018-10-28 11:00:40 · 17466 阅读 · 4 评论 -
【C语言】回文数和回文字符串的判断
一、名词解释:如果一个数正着反着都是一样,就称为这个数是回文数。例如:6, 66, 606, 6666同理如果一个字符串正着反着都是一样就称为这个字符串是回文字符串,例如“aba”,"aabb"二、解题思路回文数解题思路一:可以将整数逐位存到数组中,在依次把第一个和最后一个比较,直到中间位为止这个思路同回文字符串的思路相同。回文数解题思路二:将该整数逆置后的整数和逆置前比较...原创 2019-05-12 01:07:51 · 4020 阅读 · 0 评论 -
【C语言】常用的位运算
一、常见的位运算1、按位与(&)运算规则:0&0=0;0&1=0;1&0=0;1&1=1;即:两位同时为“1”,结果才为“1”,否则为0例如:3&5 即 0000 0011& 0000 0101 = 00000001因此,3&5的值得1。2、按位或(|)运算规则:0|0=0;0|...原创 2018-11-13 20:26:57 · 879 阅读 · 0 评论 -
【C语言】内存区域划分及分配及变量知识总结(全局变量、局部变量)
一、内存区域划分与分配:1、栈区(stack)——程序运行时由编译器自动分配,存放函数的参数值,局部变量的值等,程序结束时由编译器自动释放。2、堆区(heap)——在内存开辟另一块存储区域。一般由程序员分配释放, 若程序员不释放,程序结束时可能由OS回收 。用malloc, calloc, realloc等分配内存的函数分配得到的就是在堆上。3、全局区(静态区)(static)——...原创 2018-11-05 23:53:43 · 7334 阅读 · 0 评论 -
【C语言】内存分配函数malloc/ calloc/ realloc及内存释放free
前言:内存区域划分与分配:1、栈区(stack)——程序运行时由编译器自动分配,存放函数的参数值,局部变量的值等,程序结束时由编译器自动释放。2、堆区(heap)——在内存开辟另一块存储区域。一般由程序员分配释放, 若程序员不释放,程序结束时可能由OS回收 。用malloc, calloc, realloc等分配内存的函数分配得到的就是在堆上。3、全局区(静态区)(static...原创 2018-11-04 22:49:00 · 5649 阅读 · 0 评论 -
【C语言】递归算法的学习
一、初识递归程序调用自身的编程技巧称为递归( recursion)。 一个过程或函数在其定义或说明中有直接或间接调用自身的一种方法,它通常把一个大型复杂的问题层层转化为一个与原问题相似的规模较小的问题来求解,递归策略只需少量的程序就可描述出解题过程所需要的多次重复计算,大大地减少了程序的代码量。递归的能力在于用有限的语句来定义对象的无限集合。一般来说,递归需要满足三要素:边界条件; ...原创 2018-11-04 21:15:15 · 2735 阅读 · 0 评论 -
【C语言】统计一个字符串中字母、数字、空格及其它字符的数量
统计一个字符串中字母、数字、空格及其它字符的数量原创 2018-11-04 14:11:19 · 78373 阅读 · 13 评论 -
【C语言】字符串处理自定义函数
前言:字符串是我们接触得比较频繁的一种数据类型,通常我们会调用<string.h>头文件里的函数进行字符串处理的相关操作,那么我们能否自己写自定义函数来实现相应的功能呢?接下来我们就来介绍一些常见的字符串处理自定义函数,相信通过下面的学习大家一定会对字符串处理有更加深刻的理解!常见的字符串处理:1、字符串求长度#include <stdio.h>int...原创 2018-11-02 18:13:31 · 2298 阅读 · 1 评论 -
【C语言】一维数组、二维数组与指针
一维数组和指针:1、一维数组名:对于这样的一维数组:int a[4]; a作为数组名就是我们数组的首地址, a是一个地址常量 . 首先说说常量和变量的关系, 对于变量来说, 用箱子去比喻再好不过了, 声明一个变量就声明一个箱子,比如我们开辟出一个苹果类型的箱子, 给这个变量赋值就是把盛放苹果的箱子中放入一个实实在在的苹果, 这就是变量的赋值. 而对于数组来说, 就是一组类型相同的箱子中...原创 2018-11-02 16:59:52 · 1291 阅读 · 0 评论 -
【C语言】指针的算术运算(指针+/-整数、指针+/-指针)
一、指针+/-整数 在之前学习指针时,我们知道指针其实也是一种特殊的变量,既然这样,那么指针应该和普通变量一样,可以进行算术运算。那问题就来了,是不是对指针的任何运算都是合法的呢?答案是它可以执行某些运算,但并非所有的运算都合法。(指针可以进行加减法,对于乘除法是非法的)指针+/-整数是另一个指针,问题又来了:那它是怎样加的呢?怎样减的呢?接下来介绍一个实例:#include...原创 2018-10-31 23:57:24 · 5782 阅读 · 1 评论 -
【C语言】指针的概念(空指针、野指针、无类型指针的区分)及应用(作为参数、作为返回值)
一、指针与指针变量1.指针的概念int a=10;这行代码定义了一个int类型的变量a,编译器会为该变量分配4个字节的连续存储空间。若这块连续存储空间的首地址为0x0037FBCC,那么这个变量将会占据0x0037FBCC~0x0037FBD0这个四个字节的空间。0x0037FBCC就是这个变量的地址,因为通过这个地址就可以找到该变量所在的存储空间,这个地址就是指向该变量的指针。2.指针变量的定义指针指示某个变量所在的存储空间,相应指针变量存储这个指针。定义指针变量的语法格式如.原创 2020-10-06 22:41:06 · 4448 阅读 · 0 评论 -
【C语言】深入理解数组(一维数组、二维数组的表示及数组与指针的关系)
一、一维数组的定义与初始化1.一维数组的定义一维数组也称向量,它用以组织具有一维顺序关系的一组同类型的数据。一维数组的定义方式:数据类型 数组名[常量表达式]类型说明符表示数组中所有元素的类型;常量表达式指数组的长度(即数组中存放元素的个数)例如:int array[5];上述代码 int 表示数组元素的类型,array 是数组的名称,5是指数组的长度。数组占据的内存空间是连续的,所以很容易计算出数组占据的内存大小( 数组长度*sizeof(数据类型))和每个元素所对..原创 2020-10-06 00:05:42 · 11533 阅读 · 0 评论 -
【C语言】函数的概念和函数的调用(参数传递)
文章目录一、函数的定义二、参数传递1.参数2.传递参数的方式3.函数调用一、函数的定义在C语言中,最基础的程序模块是函数。函数被视为程序中基本的逻辑单位,一个C程序是由一个main()函数和若干普通函数组成。定义一个函数的语法格式如下:返回值类型 函数名([参数类型1 参数名1],[参数类型2 参数名2],[参数类型3 参数名3]...){ 函数体 ...... return 返回值;}函数主要包含:返回值类型、函数名...原创 2020-10-04 21:52:52 · 12368 阅读 · 0 评论 -
【C语言】标识符、数据类型、运算符和表达式
提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档文章目录前言 一、pandas是什么? 二、使用步骤 1.引入库 2.读入数据 总结前言变量和常量是程序处理的两种基本数据对象。声明语句说明变量的名字和类型,也可以指定变量的初值。运算符指定将要进行的操作。表达式把变量和常量组合生成新的值。对象的类型决定改对象可取值的集合以及对该对象执行的操作。一、标识符标识符就是变量、函数、类型等的名字。标识符由大小写字母、数字、下划线组成,但不能以..原创 2020-10-02 23:20:35 · 2918 阅读 · 0 评论 -
【C语言】指针之函数指针(回调函数)
一、函数指针的概念函数指针的定义若在程序中定义了一个函数,编译时,编译器会为函数代码分配一段存储空间,这段空间的起始地址(又称入口地址)称为这个函数的指针。与普通变量相同,可以定义一个指针指向存放函数代码的存储空间的起始地址,这样的指针就是函数指针。函数指针的定义格式如下:返回值类型 (*变量名)(参数列表)返回值类型是指针指向函数的返回值类型,*表示一个指针变量,参数列表是指针指向函数的形参列表。【注释】因为*的优先级较高,所以要将*和变量名括起来实例:int f原创 2020-10-07 19:10:02 · 1051 阅读 · 0 评论