![](https://img-blog.csdnimg.cn/20201014180756724.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
C语言
文章平均质量分 84
Emily-C
为框架而生,为框架而死,为编程奋斗一辈子
展开
-
想学好C语言文件操作?一定要掌握这5个知识点
这篇文章主要讲解有关文件操作的一些需要掌握的知识点。文件有千千万万,但是在我们的程序设计当中,我们谈的文件一般有两种:1)程序文件:包括源程序文件(后缀为.c),目标文件(windows环境后缀为.obj),可执行程序(windows环境后缀为.exe)。2)数据文件:文件的内容不一定是程序,而是程序运行时读写的数据,比如程序运行需要从中读取数据的文件,或者输出内容的文件。而在这里,我们主要提到的是数据文件。1.文件名我们知道,名字都是用来标识和区别事物的,那么文件名也是这样,是原创 2021-03-31 14:49:42 · 880 阅读 · 0 评论 -
C语言丨整蛊必备小程序,好玩炸翻天(附源码)
前言感觉学了c语言后仍然一无是处?!!想要整蛊一下朋友仍然不会?!!别慌,看完这篇文章,你就会了。下面给大家分享两个基础的整蛊小程序1.我是猪关机程序2.无限弹窗程序一、我是猪关机程序效果:运行程序后电脑在60s后关机,如果输入“我是猪”则取消关机;如果输入“你是猪”则立即关机;输入其他文字会提示重新输入;若强行关闭程序电脑仍会关机。本程序基于控制台,其功能是通过dos命令来实现。那么就先讲一下所用到的dos命令(shutdown -s -t 60)1.dos命令转载 2021-03-18 14:06:09 · 5255 阅读 · 8 评论 -
C语言丨二分查找算法详解(含示例代码)
二分査找也称折半査找,其优点是查找速度快,缺点是要求所要査找的数据必须是有序序列。该算法的基本思想是将所要査找的序列的中间位置的数据与所要査找的元素进行比较,如果相等,则表示査找成功,否则将以该位置为基准将所要査找的序列分为左右两部分。接下来根据所要査找序列的升降序规律及中间元素与所查找元素的大小关系,来选择所要査找元素可能存在的那部分序列,对其采用同样的方法进行査找,直至能够确定所要查找的元素是否存在,具体的使用方法可通过下面的代码具体了解。#include <stdio.h>原创 2021-03-16 14:25:24 · 2660 阅读 · 0 评论 -
C语言丨数组越界及其避免方法详解
来自公众号:技术让梦想更伟大作者:李肖遥所谓的数组越界,简单地讲就是指数组下标变量的取值超过了初始定义时的大小,导致对数组元素的访问出现在数组的范围之外,这类错误也是 C 语言程序中最常见的错误之一。在 C 语言中,数组必须是静态的。换而言之,数组的大小必须在程序运行前就确定下来。由于 C 语言并不具有类似 Java 等语言中现有的静态分析工具的功能,可以对程序中数组下标取值范围进行严格检查,一旦发现数组上溢或下溢,都会因抛出异常而终止程序。也就是说,C 语言并不检验数组边界,数组的两端都有.原创 2021-03-11 13:51:49 · 1283 阅读 · 0 评论 -
C语言丨储存类别和内存管理详解
储存类别C语言提供了多种储存类别供我们使用,并且对应的有对应的内存管理策略,在了解C中的储存类型前,我们先了解一下与储存类型相关的一些概念。1. 基础概念对象:不同于面向对象编程中的对象的含义,C语言是面向过程编程,不存在这样对象的概念,这个对象指的是值储存所占据物理内存空间。左值:左值是可以指定对象的表达式,它的最简单形式即为标识符,复杂的可以为为指针之类。一个表达式成为左值的前提是它确实指定了一块作为对象的储存空间,例如:int a = 1;//a作为标识符,也作基础表达式,指..转载 2021-03-09 15:53:09 · 340 阅读 · 0 评论 -
C语言丨一篇文章带你认识递归与迭代
文章来源:https://segmentfault.com/a/1190000039289471?utm_source=tuicool&utm_medium=referral递归程序调用自身的编程技巧称为递归( recursion)。 递归做为一种算法在程序设计语言中广泛应用。一个过程或函数在其定义或说明中有直接或间接调用自身的一种方法,它通常把一个大型复杂的问题层层转化为一个与原问题相似的规模较小的问题来求解,递归策略只需少量的程序就可描述出解题过程所需要的多次重复计算,大大地减少了程.原创 2021-03-06 14:09:44 · 351 阅读 · 0 评论 -
C语言进阶丨(七)数组的基本概念和初始化【1】
数组的基本概念数组可以说是目前为止讲到的第一个真正意义上存储数据的结构。虽然前面学习的变量也能存储数据,但变量所能存储的数据很有限。不仅如此,数组和指针(后续会讲)是相辅相成的,学习数组可以为学习指针打下基础。那么到底什么是数组呢?顾名思义数组就是很多数的组合!那么这些数有没有什么要求呢,是不是不管什么数组合在一起都是数组呢?同一数组中存储的数必须满足以下两个条件:1)这些数的类型必须相同。2)这些数在内存中必须是连续存储的。换句话说,数组是在内存中连续存储的具有相同类型的一组数据的集合原创 2021-03-05 21:26:35 · 330 阅读 · 0 评论 -
C语言fgetc和fputc函数用法详解(以字符形式读写文件)
文章来源:http://c.biancheng.net/view/2068.html在C语言中,读写文件比较灵活,既可以每次读写一个字符,也可以读写一个字符串,甚至是任意字节的数据(数据块)。本节介绍以字符形式读写文件。以字符形式读写文件时,每次可以从文件中读取一个字符,或者向文件中写入一个字符。主要使用两个函数,分别是 fgetc() 和 fputc()。字符读取函数 fgetcfgetc 是 file get char 的缩写,意思是从指定的文件中读取一个字符。fgetc() 的用法.原创 2021-03-05 14:33:33 · 998 阅读 · 0 评论 -
C语言中的 int** 是什么?这要从int* 和int 说起...
从int*和int说起“int**是什么” 这个问题其实不难。我们可以递归分析,先看下int*是什么,嗯?好像还可以继续递归到int我们都知道,int是 C 的基础数据类型整型,而多了个*的int*是指向整型变量的指针,那么int**是什么就不言自明了,列个表:看到这里,你对int**应该有了个初步的认识,但你可能觉得有点绕,没关系,下面我们写一段代码看看:#include <stdio.h>int main(){ int i ...转载 2021-03-03 19:51:10 · 13545 阅读 · 4 评论 -
C语言基础丨(六)程序结构——循环结构【3】
循环结构可以减少源程序重复书写的工作量,用来描述重复执行某段算法的问题,这是程序设计中最能发挥计算机特长的程序结构。C语言中提供四种循环,即goto循环、while循环、do?Cwhile循环和for循环。四种循环可以用来处理同一问题,一般情况下它们可以互相代替换,但一般不提倡用goto循环,因为强制改变程序的顺序经常会给程序的运行带来不可预料的错误,在学习中我们主要学习while、do…while、for三种循环。1、while语句总体注解:while语句创建一个循环,该循环在判断表达原创 2021-02-26 19:42:35 · 326 阅读 · 0 评论 -
C语言丨二维数组常用的4种表示方法
常用的有以下几种二维数组的表示方法:(1)、第一种是普通的二维数组的表示方法。(2)、第二种是用一维数组来表示二维数组,从显示的元素地址可以看出,二维数组和一维数组表示的二维数组在内存中的储存方式其实是一样的,不过使用二维数组看起来要简单些,只要不用进行地址转换。(3)、第三种表示是用指针数组。本例中的c[i]中的元素其实是地址。这种方法对各个元素大小不一样的情况下比较适用。如:假定有若干个不等长字符串需要我们处理,如果使用a [i ][j]结构,则j必须取这些字符串长度的最大值, 显然这种..原创 2021-02-26 18:54:20 · 3199 阅读 · 0 评论 -
C语言基础丨(六)程序结构——分支(选择)结构【2】
顺序结构的程序虽然能解决计算、输出等问题,但不能做判断再选择。对于要先做判断再选择的问题就要使用分支结构。分支结构的执行是依据一定的条件选择执行路径,而不是严格按照语句出现的物理顺序。分支结构的程序设计方法的关键在于构造合适的分支条件和分析程序流程,根据不同的程序流程选择适当的分支语句。分支结构适合于带有逻辑或关系比较等条件判断的计算,设计这类程序时往往都要先绘制其程序流程图,然后根据程序流程写出源程序,这样做把程序设计分析与语言分开,使得问题简单化,易于理解。程序流程图是根据解题分析所绘制的程序执原创 2021-02-25 18:59:33 · 1081 阅读 · 0 评论 -
C语言基础丨(六)程序结构——顺序结构【1】
顺序结构的程序设计是最简单的,只要按照解决问题的顺序写出相应的语句就行,它的执行顺序是自上而下,依次执行。例如:a = 3,b = 5,现交换a,b的值,这个问题就好像交换两个杯子水,这当然要用到第三个杯子,假如第三个杯子是c,那么正确的程序为:c = a;a = b;b = c;执行结果是a = 5,b = c = 3如果改变其顺序,写成:a = b;c = a;b =c;则执行结果就变成a = b = c = 5,不能达到预期的目的,初学者最容易犯这种错误。顺序结原创 2021-02-24 22:55:03 · 1063 阅读 · 0 评论 -
C语言丨指针基础知识详解
对程序进行编译的时候,系统会把变量分配在内存单位中,根据不同的变量类型,分配不同的字节大小。比如int整型变量分配4个字节,char字符型变量分配1个字节等等。被分配在内存的变量,可以通过地址去找到,内存区每一个字节都有一个编号,地址也可以形象的理解成我们生活中的住址,通过住址找到每一个人所在的地方。指针作为一个变量用来存放地址,可以通过指针来改动变量。上图就是一个简单的定义一个一级指针变量和利用指针改变变量数值的过程。int*表示整型指针,*p表示解引用操作,就是利用指针找到a的地址然后再改变a的原创 2021-02-24 19:24:09 · 397 阅读 · 0 评论 -
半年也没学会C语言,编程真的需要天赋么?
最近在知乎上看到了一个很有趣的问题,题目叫做:编程学习真的需要天赋吗?提问题的题主说自己花了半年的时间硬啃C primer plus,结果看到链表的时候就再也看不下去了。然后又看算法导论,看得头疼欲裂。于是陷入了困惑,为什么同样是半年的时间,别人可以把基础的算法都学完,但是自己却一无所获呢,难道真的是天赋不行吗?今天就和大家聊聊,希望能够帮助到大家。不要通过啃书的方式入门在我看来题主最大的问题可能不是天赋不够,而是选错了学习方法。说起来不同的人有不同的方法,有些人喜欢看视频,有些人喜原创 2021-02-24 14:14:43 · 586 阅读 · 0 评论 -
C语言基础丨(六)C语句和程序流
从程序流程的角度来看,程序可以分为三种基本结构, 即顺序结构、分支(选择)结构、循环结构。这三种基本结构可以组成所有的各种复杂程序。C程序的结构:C程序的执行部分是由语句组成的。程序的功能也是由执行语句实现的。C语句可分为以下五类:表达式语句函数调用语句控制语句复合语句空语句1) 表达式语句表达式语句由表达式加上分号“;”组成。其一般形式为: 表达式;执行表达式语句就是计算表达式的值。例如:x=y+z;/* 赋值语句 */y..原创 2021-02-23 20:08:31 · 285 阅读 · 1 评论 -
C语言丨指针和数组的用法,不要再傻傻分不清了
指针是 C 语言中的一个特点,也是内存地址,是内存单元的编号,指针变量是用来存放内存地址的变量,不同类型的指针变量所占用的存储单元长度是相同的,而存放数据的变量因数据的类型不同,所占用的存储空间长度也不同。有了指针以后,不仅可以对数据本身,也可以对存储数据的变量地址进行操作;一般把指针称为指针变量,指向的对象可以是变量或者数组等;指针指向数组时,它内容存储的是数组的首地址,所以数组和指针就产生了一定的关系。那什么是数组呢?具有相同类型的若干元素按有序的形式组织起来的一种集合就叫做数组,下面会对指针、指针转载 2021-02-22 14:34:16 · 1247 阅读 · 0 评论 -
喂!千万别忘了这个C语言知识!(~0 == -1 问题)
今天带大家复习一个容易遗忘的C语言知识点,负数的存储及其一个典型考察形式。我们先看一个题目#include<stdio.h>intmain(){inta,b,c,d;//或者inta,b,c,d;a=0x8;b=a>>1;c=~(~0<<1);d=b&c;printf("cis%d\n",c);printf("dis%d\n",d);}解...原创 2021-02-07 14:24:13 · 415 阅读 · 0 评论 -
C语言丨关键字union的定义和使用
union,中文名“联合体、共用体”,在某种程度上类似结构体struct的一种数据结构,共用体(union)和结构体(struct)同样可以包含很多种数据类型和变量。但在“联合”中,各成员共享一段内存空间, 一个联合变量的长度等于各成员中最长的长度。一个联合体类型必须经过定义之后, 才能使用它,才能把一个变量声明定义为该联合体类型。当定义结构对象时,如果没有显式地初始化它们,则会采用一般初始化规则:如果该结构对象属于动态存储类型,那么其成员具有不确定的初始值。另一方面,如果结构对象具有静态存..原创 2021-02-06 14:32:45 · 5206 阅读 · 0 评论 -
C语言基础丨运算符之求字节数运算符和特殊运算符(十)
求字节数运算符用于计算数据类型所占的字节数(sizeof)。一、sizeof的概念sizeof是c语言的一种单目操作符,如c语言的其他操作符++、--等。并且它并不是一个函数,sizeof的操作符以字节的形式给出了操作数的储存大小(操作数可以是一个表达式或括号里的类型名)并其储存的大小有操作数的类型决定,和本身无关系。二、sizeof的使用方法1.用于数据类型sizeof的使用形式:sizeof(char)注意数据类型必须用括号。2.用于变量sizeof使用形式:sizeo.原创 2021-02-05 19:13:31 · 2920 阅读 · 0 评论 -
C语言丨关键字enum用法详解,看这篇就够了
一、关键字enum的定义enum是C语言中的一个关键字,enum叫枚举数据类型,枚举数据类型描述的是一组整型值的集合(这句话其实不太妥当),枚举型是预处理指令#define的替代,枚举和宏其实非常类似,宏在预处理阶段将名字替换成对应的值,枚举在编译阶段将名字替换成对应的值,我们可以将枚举理解为编译阶段的宏,使用格式:enum typeName { valueName1, valueName2, valueName3, ...... };typeName是枚举类型的名字,花括号里面的元素(原创 2021-02-05 14:02:13 · 25588 阅读 · 0 评论 -
C语言基础丨运算符之指针运算符*和取地址运算符&(九)
C语言的指针指针就是地址,指针也是C语言的一种数据类型。用指针类型定义的变量称作指针变量,指针变量储存的不是普通数据而是一个地址,一个变量的地址称为该变量的指针。指针变量定义的一般形式为:类型标识符 * 变量名星号是指针类型的标志。C语言指针变量的使用需要以下两个运算符:&:取地址运算符,它返回运算对象的内存地址。* :指针运算符,也称为“间接引用操作符”,它返回指针指的变量的值。1.取地址运算符 && 是一元运算符,返回操作数的内存地址。如果操作原创 2021-02-04 18:52:23 · 6058 阅读 · 0 评论 -
五种C语言非数值计算的常用经典排序算法,赶紧收好!
摘要: 排序是计算机的一种操作方法,其目的是将一组“无序”的记录序列调整为“有序”的记录序列,主要分为内部排序和外部排序。(1)冒泡排序(起泡排序)冒泡排序(Bubble Sort),其基本思路是,对于一组要排序的元素列,依次比较相邻的两个数,将比较小的数放在前面,比较大的数放在后面,如此继续,直到比较到最后的两个数,将小数放在前面,大数放在后面,重复步骤,直至全部排序完成。优点:稳定;缺点:慢,每次只能移动相邻两个数据。假设要对含有n个数的序列进行升序排列,冒泡排序算法步...转载 2021-02-04 14:09:44 · 909 阅读 · 0 评论 -
C语言基础丨运算符之逗号运算符(八)
在C语言和C++语言中,可以把多个表达式用逗号联接起来(或者说,把这些表分达式用逗号分开),构成一个更大的表达式。其中的逗号称为逗号运算符,所构成的表达式称为逗号表达式。逗号表达式中用逗号分开的表达式分别求值,以最后一个表达式的值作为整个表达式的值。逗号运算符是二元运算符,逗号表达式的一般形式为:表达式1 , 表达式2逗号表达式的一般形式可以扩展为:表达式1,表达式2,表达式3……表达式n它的值为表达式n的值。逗号运算符确保操作数被顺序地处理:先计算左边表达式1的操作数,再计原创 2021-02-03 19:13:57 · 547 阅读 · 0 评论 -
C语言基础丨运算符之条件运算符(七)
条件运算符(conditional operator)有时候也称为三元运算符(ternary operator,或者trinary operator),因为它是唯一需要 3 个操作数的运算符,条件表达式的一般形式为:条件 ? 表达式1 : 表达式2条件运算操作会首先计算条件,然后根据条件的计算结果,再决定要计算两个表达式中的哪一个。条件表达式通常用于赋值语句之中。其求值规则为:如果条件表达式为真,整个表达式的值为表达式1的值;如果条件表达式为假,整个表达式的值为表达式2的值。条件原创 2021-01-30 19:05:21 · 1244 阅读 · 0 评论 -
C语言丨数组初始化的三种常用方法({0}, memset, for循环赋值)以及原理
C语言中,数组初始化的方式主要有三种:1、声明时,使用 {0} 初始化;2、使用memset;3、用for循环赋值。那么,这三种方法的原理以及效率如何呢?请看下面的测试代码:#define ARRAY_SIZE_MAX(1*1024*1024)void function1(){chararray[ARRAY_SIZE_MAX]={0};//声明时使用{0}初始化为全0}void function2(){chararr...转载 2021-01-30 14:15:49 · 1449 阅读 · 0 评论 -
C语言基础丨运算符之位运算符(六)
对于更多紧凑的数据,C 程序可以用独立的位或多个组合在一起的位来存储信息。文件访问许可就是一个常见的应用案例。位运算符允许对一个字节或更大的数据单位中独立的位做处理:可以清除、设定,或者倒置任何位或多个位。也可以将一个整数的位模式(bit pattern)向右或向左移动。C语言提供了六种位运算符:& 按位与| 按位或^ 按位异或~ 取反<< 左移>> 右移位运算应用口诀清零取反要用与,某位置一可用或若要取反和交换,轻..原创 2021-01-29 19:02:44 · 999 阅读 · 0 评论 -
C语言基础丨运算符之赋值运算符(五)
赋值操作是程序设计中最常用的操作之一,C 语言共提供了 11 个赋值运算符,均为二元运算符,其中仅有一个为基本赋值运算符 =,其余 10 个均是复合赋值运算符,即:(1)简单赋值运算符" = "用法:变量标识符 = 表达式作用:将一个数据(常量或表达式)赋给一个变量 ,左侧必须是变量,不能是常量或表达式注意:1>.在程序中可以多次给一个变量赋值,每赋一次值,与该变量相应的存储单元的数据就被更新一次,内存中当前的数据就是最后一次所赋值的那个数据。即,最左边变量所得到的新值是整个赋值.原创 2021-01-28 19:11:01 · 10375 阅读 · 1 评论 -
C语言丨区别 typedef与#define的用法,一文搞懂关键字typedef
在C语言中有一个typedef关键字,其用来定义用户自定义类型。当然,并不是真的创造了一种数据类型,而是给已有的或者符合型的以及复杂的数据类型取一个我们自己更容易理解的别名。总之,可以使用typedef关键字定义一个我们自己的类型名称。它本身是一种存储类的关键字,与auto、extern、mutable、staTIc、register等关键字不能出现在同一个表达式中。那么,究竟如何定义,又有哪些情况下可已使用呢?接下来我们就对它的几种用法进行说明:C语言中typedef的用法1.基本数据类型定义原创 2021-01-28 14:14:02 · 514 阅读 · 0 评论 -
C语言基础丨运算符之逻辑运算符(四)
在高中数学中,我们就学过逻辑运算,例如p为真命题,q为假命题,那么“p且q”为假,“p或q”为真,“非q”为真。在C语言中,也有类似的逻辑运算:在编程中,我们一般将零值称为“假”,将非零值称为“真”。逻辑运算的结果也只有“真”和“假”,“真”对应的值为 1,“假”对应的值为 0。1) 与运算(&&)参与运算的两个表达式都为真时,结果才为真,否则为假。例如:5&&05为真,0为假,相与的结果为假,也就是 0。(5>0) &..原创 2021-01-26 18:58:06 · 635 阅读 · 0 评论 -
C语言丨关键字signed和unsigned 的使用与区别详解
在C语言中,signed/unsigned用于修饰整数变量,signed表示有符号的,unsigned表示无符号的。今天就带大家了解一下关键字signed和unsigned 。1、signedsign的本意是“标记,做记号”,ed后缀有一种完成时的感觉,这里表示的是有符号的。signed关键字是ISO/ANSI C90标准新增的,其常见于整数类型的符号规定处 。signed的作用是:声明有符号类型的整数类型。其实说signed很常见也不见得,因为我们常用的int、short...原创 2021-01-26 14:19:16 · 12576 阅读 · 0 评论 -
C语言基础丨运算符之关系运算符(三)
C语言提供了以下关系运算符:关系运算符都是双目运算符,其结合性均为左结合。关系运算符的优先级低于算术运算符,高于赋值运算符。在六个关系运算符中,<、<=、>、>=的优先级相同,高于==和!=,==和!=的优先级相同。在C语言中,有的运算符有两个操作数,例如 10+20,10和20都是操作数,+ 是运算符。我们将这样的运算符称为双目运算符。同理,将有一个操作数的运算符称为单目运算符,将有三个操作数的运算符称为三目运算符。常见的双目运算符有 +、-、*、/ 等,单目.原创 2021-01-25 19:01:23 · 1106 阅读 · 0 评论 -
C语言丨一文带你了解auto关键字(又名隐形刺客)
1.隐形刺客:auto描述:这个这个关键字用于声明变量的生存期为自动,即将不在任何类、结构、枚举、联合和函数中定义的变量视为全局变量,而在函数中定义的变量视为局部变量。auto关键字在我们写的代码里几乎看不到,但是它又无处不在,它是如此的重要,又是如此的与世无争,默默的履行着自己的义务,却又隐姓埋名。作用:C程序是面向过程的,在C代码中会出现大量的函数模块,每个函数都有其生命周期(也称作用域),在函数生命周期中声明的变量通常叫做局部变量,也叫自动变量。例如: int fun()...转载 2021-01-25 14:16:54 · 897 阅读 · 0 评论 -
C语言基础丨运算符之算术运算符(二)
算术运算符按操作数个数可分为一元运算符(含一个操作数)和二元运算符(含两个操作数)。一元运算符的优先级一般高于二元运算符。一元运算符:+(正号)、-(负号)、++(增1)、--(减1)。自增(++):在原来基础上+1。例如:intnum =10;num++;printf("num=%d",num);注意:当printf("num=%d",num++);这种写法时,程序会先打印之后才会执行++;当printf("num=%d",++num);这种写法时,程序会先执行++之.原创 2021-01-24 19:25:27 · 559 阅读 · 2 评论 -
C语言基础丨初识运算符及其优先级(一)
一、前言C语言主要特点之一:运算符丰富C语言的运算符包含的范围广泛,共有34种运算符。C语言把括号、逗号、叹号、赋值和强制转换等都作为运算符处理,从而使C语言的运算类型及其丰富,表达式类型多样化。灵活使用运算符可以实现在其他高级语言中难以实现的运算。基础的C语言运算符是每个程序员都应该学会的,我们非常有必要清晰地知道运算符一共有哪些和哪些是需要我们必须掌握的。如果文章中有啥错误和分析不到位的地方,希望大家指点 ,谢谢支持,共同进步!!!二、运算符定义运算符是一种告诉编译器执行特定的数学或原创 2021-01-23 18:57:41 · 573 阅读 · 0 评论 -
C语言丨一文带你了解关键字register(又名闪电飞刀 )
register:这个关键字请求编译器尽可能的将变量存在CPU内部寄存器中,而不是通过内存寻址访问,以提高效率。注意是尽可能,不是绝对。因为,如果定义了很多register变量,可能会超过CPU的寄存器个数,超过容量。所以只是可能。关于register关键字,在《C与指针》这一本书的都151页,作者这样说到:“在许多机器上,register变量所产生的代码将比静态内存中的变量和堆栈中的变量所产生的代码执行速度更快。但是这取决于你的环境,许多当前的编译器比程序员更加懂得怎样合理分配寄存器。”原创 2021-01-23 14:16:10 · 396 阅读 · 0 评论 -
C语言丨printf(),sprintf(),scanf(),sscanf()的用法和区别
今天就对C语言中printf(),sprintf(),scanf(),sscanf()的用法以及区别进行了详细的分析介绍,需要的朋友可以参考下。1、printf语法:#includeint printf( const char *format, ... );printf()函数根据format(格式)给出的格式打印输出到STDOUT(标准输出)和其它参数中。返回值是输出的字符数量。2、sprintf语法:#includeint sprintf( cha...原创 2021-01-22 16:12:21 · 219 阅读 · 0 评论 -
如何用C语言实现三子棋游戏?收下这份源码,小白也能学得会!
不知道大家有没有玩过三子棋游戏呢?今天小编就来分享C语言是如何实现三子棋游戏的,供大家参考一下,具体内容如下。首先,我们从main函数开始写起,分析游戏的整体逻辑int main(){int input=0;srand((unsigned int)time(NULL));do{menu();printf("请选择:");scanf("%d",&input);switch(input){case 1: game(); brea...原创 2021-01-19 13:52:56 · 202 阅读 · 0 评论 -
注意!C语言中&与&&不只是多一个符号的区别,而是...
一、简要说明按位与:a&b是把a和b都转换成二进制数然后再进行与的运算;逻辑与:a&&b就是当且仅当两个操作数均为 true时,其结果才为 true;只要有一个为零,a&&b就为零。例如:a&b9&810011000结果是1000a&&b9&&8 结果是1&对每一个都判断;&&只要前面是false就输出false,而不继续判断后面了。...原创 2021-01-18 20:32:34 · 2856 阅读 · 1 评论 -
趣味编程丨C语言实现用%f控制符输出6位小数 (源码+注释)
例题:C语言实现用%f输出实数,且只能得到6位小数解题思路:不指定输出数据的长度,由系统根据数据的实际情况决定数据所占的列数。系统处理的方法一般是:实数中的整数部分全部输出,小数部分输出6位。源代码演示:编译结果:在上述代码中,虽然double_temp是双精度型,double_temp/3的结果也是双精度,但是用%f格式声明只能输出6位小数。这里也可以用%m.nf指定数据宽度和小数位数。在C语言中,/ 是除,如果是整数相除,只取整数部分,没有四舍...转载 2021-01-17 13:50:08 · 1617 阅读 · 0 评论