❤️《十万字c语言动漫教程》,别用4g看,不然100m流量没了❤️(建议收藏)(代码片段)

英雄哪里出来 英雄哪里出来     2022-12-07     438

关键词:

零、初章

  欢迎大家踊跃评论,优秀的评论更能引起大家的共鸣,评论超过20字,或有内涵,或点赞前十名,都将获得 《夜深人静写算法》《C语言入门100例》5 折优惠券(各一张) ,三天为限,记得主动联系博主。

一、开端

在这里插入图片描述

  • C语言是一种高级语言,运行效率仅次于汇编,支持跨平台,所以被广泛的应用于软件开发、系统开发、嵌入式系统、游戏开发等场景。

二、一个C语言程序

在这里插入图片描述

1、编程环境

  • ( 1 ) (1) (1) 百度搜索 “c语言在线编译”,如图四-1-1所示:

图四-1-1

  • ( 2 ) (2) (2) 任意选择一个在线编译工具,我选择的是菜鸟工具,如图四-1-2所示:
    图四-1-2

2、写代码

在这里插入图片描述

  • 先给出代码,然后根据行尾的标号,一行一行进行解释;
#include <stdio.h>               // (1)
int main()                       // (2)

   /* 我的第一个 C 程序 */       // (3)
   printf("Hello, World! \\n");   // (4)
   return 0;                     // (5)

这段代码只做了一件事情,就是向屏幕上输出一行字:Hello, World!
( 1 ) (1) (1) stdio.h是一个头文件 (标准输入输出头文件) , #include是一个预处理命令,用来引入头文件。当编译器遇到 printf()函数时,如果没有找到 stdio.h头文件,就会发生编译错误。
( 2 ) (2) (2) main()作为这个程序的入口函数,代码都是从这个函数开始执行的。
( 3 ) (3) (3)/**/包围起来的代表注释,是给人看到,不进行代码的解析和执行。
( 4 ) (4) (4) printf代表将内容输出到控制台上。其中\\n代表换行符。
( 5 ) (5) (5) 作为函数的返回值。
在这里插入图片描述

  • 你可能对 头文件、预处理命令、函数、换行符、返回值 这些都没有概念,没有关系,刚开始我们不去理解这些概念,你只需要知道:通过改一些代码以后,能够看到想要看到的结果 就行。

3、修改代码

  • 我们把 Hello, World 改成 光天化日学C语言 后,再来看看效果:
#include <stdio.h>                // (1)
int main()                        // (2)

   /* 我的第一个 C 程序 */        // (3)
   printf("光天化日学C语言! \\n"); // (4)
   return 0;                      // (5)

三、编译运行

1、编译

  • 编译就是把高级语言变成计算机可以识别的二进制语言,因为计算机只认识 1 和 0,你需要把一大堆复杂的语言词法、语法全部转换成 0 和 1。

2、运行

  • 运行就是执行可执行程序啦。就是我们通常 Windows 上的双击 exe 干的事情。

在这里插入图片描述


四、为什么要搭建本地环境

在这里插入图片描述

  • 1)联网:在线编译环境毕竟涉及到联网,如果没有网的情况下,我们就不能写代码了,真是听者伤心,闻者流泪啊;
  • 2)定制化:写代码是一辈子的事情,界面当然要搞得赏心悦目才能持久,本地环境可以配置字体和背景,支持定制化,觉得什么界面好看就配成什么样的;
  • 3)代码补全:字体高亮,代码补全 这些好用的功能,能够帮助你减少很多不必要编码错误;
  • 4)多文件:当代码量比较大以后,涉及到多个文件时,在线编译环境就无能为力了;

五、下载 Dev C++

  • Dev C++ 是一个轻量级的 C/C++ 集成编译环境,正因为是轻量级,所以还是有很多不太好用的地方,不过不用担心,对于教学来说已经足够了。
  • 相比 Visual Studio 20XX 来说,安装快了不少,所以我打算用这个工具来进行后续文章的讲解。
  • 可以选择以下任何一个链接进行下载,下载后解压出 DevCpp_v6.5.exe 即可。

百度网盘下载

CSDN下载

六、安装 Dev C++

1、语言选择

  • 双击 DevCpp 的 exe 文件,会跳出如下对话框,初学者建议直接用中文。如图五-1所示:

图五-1

2、我接受

  • 同意安装,如图五-2所示:

图五-2

3、下一步

  • 点击下一步,如图五-3所示:

图五-3

4、选择安装位置

  • 选择一个你钟意的安装路径,点击安装,如图五-4所示:

在这里插入图片描述

图五-4

5、看他装完

  • 看他安装完,大概 7 秒左右,如图五-5-1所示:

图五-5-1

图五-5-2

七、配置

1、选择语言

  • 选择一个你钟意的语言,推荐用中文,强我国威,壮我河山!点击 Next,如图六-1所示:

图六-1

2、选择配色

  • 选择一个你看着舒服的配色方案,推荐 VS Code,如图六-1所示:

在这里插入图片描述

图六-1

八、写一段代码

1、新建文件

  • 点击界面左上角的 【新建】 按钮,选择【源代码】菜单栏,如图七-1所示;
    图七-1

2、写代码

  • 把我们第一章中写过的代码,写到这个文件中。建议自己一行一行写哦,复制粘贴 和 自己敲出来的感觉是不一样的。
#include <stdio.h>
int main() 
    printf("光天化日写C语言!\\n");
    return 0;

3、保存文件

  • 点击菜单栏的【保存】按钮,或者 Ctrl + S 快捷键保存文件。

在这里插入图片描述

图七-3

4、编译运行

  • 点击菜单栏的【编译运行】或者 F11 按钮,就会跳出一个控制台,如图七-4所示:

图七-4


九、变量

在这里插入图片描述

1、变量的定义

对于一个变量而言,有三部分组成:
  1)变量类型;
  2)变量名;
  3)变量地址;

  • 在C语言中,我们可以通过如下的方式定义一个变量:
    int Iloveyou;

1)变量类型

  • int表示变量类型,是英文单词 Integer 的缩写,意思是整数。

在这里插入图片描述

2)变量名

  • Iloveyou表示变量名,也可以叫其它名字,例如:WhereIsHeroFromILoveYou1314等等。
  • 这个语句的含义是:在内存中找一块区域,命名为Iloveyou,用它来存放整数。
  • 需要注意的是,最后有一个分号,int Iloveyou表达了一个语句,要用分号来结束。需要注意的是,最后有一个分号,int Iloveyou表达了一个语句,要用分号来结束。

在这里插入图片描述

3)变量地址

在这里插入图片描述

2、变量的赋值

  • C语言中可以用以下语句把 520 520 520 这个整数存储到Iloveyou这个变量里:
    Iloveyou = 520;

在这里插入图片描述

  • =在数学中叫 “等于号”,例如 1 + 1 = 2,但在C语言中,这个过程叫做变量的赋值,简称赋值。赋值是指把数据放到内存的过程。

3、变量的初始化

  • 把上面的两个语句连起来,得到:
    int Iloveyou;
    Iloveyou = 520;
  • 当然,我们也可以写成如下形式:
    int Iloveyou = 520;

在这里插入图片描述

  • 两段代码的执行结果相同,都是把Iloveyou的值变成 520 520 520

在这里插入图片描述

4、变量的由来

  • 如果我们需要,可以随时改变它的值,如下代码所示:
    int Iloveyou = 520;
    Iloveyou = 521;
    Iloveyou = 522;
    Iloveyou = 523;
  • 代码执行完毕以后,它的值以最后一次赋值为准,正因为可以不断修改,是可变的,所以才叫变量。

  • 简单总结一下就是:数据是放在内存中的,变量是给这块内存起的名字,有了变量就可以找到并使用这份数据。

5、多变量的定义

  • 如果几个变量的类型一致,我们可以写在一行上进行定义,如下:
    int x, y, z = 5;
  • 这段代码代表一次性定义了三个整型类型的变量,并且将z初始化为 5,等价于如下代码:
    int x; 
    int y;
    int z = 5;

6、变量间的赋值

  • 变量不能赋值给数字,但是变量可以赋值给变量。
    int a, b;
    520 = a;  // 错误
    a = b;    // 正确

在这里插入图片描述

【例题1】给出如下代码,求输出结果是什么。

#include <stdio.h>
int main()

    int a = 1314, b = 520;
    b = a;
    a = b;
    printf("a=%d b=%d\\n", a, b);
    return 0;

十、数据类型

在这里插入图片描述

  • 接下来我们展开来讲一下变量类型,更加确切的讲,应该叫数据类型,C语言中有如下一些系统内置数据类型。

1、内置数据类型

  • 从上面这个表,我们可以看到,有表示字符的,有表示整数的,也有表示浮点数的。

在这里插入图片描述

  • 先来简单看下每种内置类型是如何进行定义的:
    char a = 'a';
    short b, c, d = 1314, e, f;
    int g = 5201314;
    long long h = 123456789;
    float i = 4.5;
    double j = 4.50000;

2、数据的大小

在这里插入图片描述

  • 字节是计算机中的一种基本单位,英文名为 Byte,计算机中所有的数据都是由字节组成的。
  • 我们通常在计算机中看到的文件单位 B 、K、M 、G、T 和字节的关系如下:

  • 一个字节在计算机里面是有 8 个位组成,一个位有 0 和 1 两种状态,所以一个字节能表示的状态数就是 2 8 = 256 2^8 = 256 28=256。如图四-2-1,代表的是一个字节的状态,白色代表0,灰色代表1,它的二进制表示就是 ( 00001101 ) 2 (00001101)_2 (00001101)2
    图四-2-1

3、整数的表示范围

  • 这样一来,上面提到的几种整数类型,能够表示的整数就显而易见了,假设字节数为 n n n,那么能够表示的整数个数就是能够表示的状态个数,即: 2 8 n 2^8n 28n
  • 由于我们需要表示负数 和 零,实际的每种整数数据类型能够表示的数字范围如下表所示:

十一、变量名

1、标识符

  • 定义变量时,我们使用了诸如 loveIloveyou这样的名字,为了表达变量的作用,这就叫 标识符,即 Identifier。
  • 标识符就是程序员自己起的名字,除了变量名,后面还会讲到函数名、常量名、宏名、结构体名等,它们都是标识符。

2、关键字

  • 关键字(Keywords)是由C语言规定的具有特定意义的字符串,通常也称为保留字,例如 intcharlongintunsigned int等。
  • 程序自己定义的标识符不能与关键字相同,否则会出现错误。
  • 后续会对各个关键字进行一一讲解。

3、命名规则

  • ( 1 ) (1) (1) 必须由字母、数字 或者下划线构成,如 _aaa123_都是合法的变量,?*a a#、都是非法的变量;
  • ( 2 ) (2) (2) 不能以数字开头,如123abc不是一个合法的变量名;
  • ( 3 ) (3) (3) 大小写敏感,即大小写看成不同,即oO不是同一个变量;
  • ( 4 ) (4) (4) 不能将变量名和C语言的语法保留关键字同名;
  • ( 5 ) (5) (5) C语言虽然不限制标识符的长度,但是它受到 编译器 和 操作系统 的限制。例如在某个编译器中规定标识符前 256 位有效,当两个标识符前 256 位相同时,则被认为是同一个标识符。
  • ( 6 ) (6) (6) 标识符命名时还是最好遵循 min-length-max-infomation 的原则,即以最小的长度表达最全的信息,不过这个是规范上的,语言层面是不会做过多的限制的。

【例题2】给出一段程序,请回答这段程序的运行结果。

#include <stdio.h>

int main()

	int IloveYou = 0;
	ILoveYou = 1314;
	ILoveYou = ILoveYou;
	ILoveYou = 520;
	printf("%d\\n", ILoveYou);
    return 0;


十二、概念简介

1、输出的含义

2、标准输出

在这里插入图片描述

在C语言中,有三个函数可以用来在屏幕上输出数据,它们分别是:
  1)puts() :只能输出字符串,并且输出结束后会自动换行;
  2)putchar() :只能输出单个字符;
  3)printf():可以输出各种类型的数据,作为最灵活、最复杂、最常用的输出函数,可以完全替代全面两者,所以是必须掌握的,今天我们就来全面了解一下这个函数。

3、格式化

在这里插入图片描述

  • 我们在进行输出的时候,对于小数而言,可能需要输出小数点后一位,亦或是两位,这个计算机自己是不知道规则的,需要写代码的人告诉它,这个告诉它如何输出的过程就被称为格式化。

十三、格式化输出

  • printf前几个章节都有提及,这个函数的命名含义是:Print(打印)Format (格式) ,即 格式化输出。

1、数据类型格式化

1)整数

#include <stdio.h>
int main()

    int a = 520;
    long long b = 1314;
	printf("a is %d, b is %lld!\\n", a, b);
	return 0;

  • 对于int而言,我们利用%d将要输出的内容进行格式化,然后输出,简单的理解就是把%d替换为对应的变量,%lld用于对long long类型的变量进行格式化,所以这段代码的输出为:
a is 520, b is 1314!

在这里插入图片描述

2)浮点数

#include <stdio.h>
int main()

	float f = 1.2345;
	double df = 123.45;
	printf("f is %.3f, df is %.0lf\\n", f, df);
	return 0;

  • 对于浮点数而言,我们利用%f来对单精度浮点数float进行格式化;用%lf来对双精度浮点数进行格式化,并且用.加 “数字” 来代表要输出的数精确到小数点后几位,这段代码的输出为:
f is 1.235, df is 123

  • 另外,单精度 和 双精度 的区别就是双精度的精度更高一点,也就是能够表示的小数的范围更加精准,这个会在介绍浮点数的存储方式时详细介绍。

3)字符

#include <stdio.h>
int main()

    char ch = 'A';
    printf("%c\\n", ch);
	return 0;

  • 对于字符而言,我们利用%c来进行格式化;C语言中的字符是用单引号引起来的,当然,字符这个概念扯得太远,会单独开一个章节来讲,具体可以参考 ASCII 码。
  • 顺便我们来解释一下一直出现但是我闭口不提的换行符\\n,这个符号是一个转义符,它代表的不是两个字符(反斜杠\\和字母n),而是换行的意思;
  • 这段代码的输出就是一个字符 A;
A
  • 我们通过一个例题来理解这个换行符的含义;
    在这里插入图片描述

【例题1】第1行输出1个1,第2行输出2个2,第3行输出3个3,第4行输出4个4。

#include <stdio.h>
int main()

    printf("1\\n");
    printf("22\\n");
    printf("333\\n");
    printf("4444\\n");
	return 0;

  • 我们也可以用一条语句解决,如下:
#include <stdio.h>
int main()

    printf("1\\n22\\n333\\n4444\\n");
	return 0;

在这里插入图片描述

4)字符串

  • 字符串,是由多个字符组合而成,用双引号引起来,这一章我不打算讲得太细,只需要知道用%s进行格式化的即可,代码如下:
#include <stdio.h>
int main()

    char str[100] = "I love you!";
    printf("%s\\n", str);
	return 0;

  • 这段代码,聪明的你应该很容易看懂啦!输出的就是:
I love you!

在这里插入图片描述

  • 作者:我了个擦,字体颜色都变了……

2、对齐格式化

  • 我们发现,上文中所有的格式化,都有一个%和一个字母,事实上,在百分号和字母之间,还有一些其它的内容。

主要包含如下内容:
  1)负号:如果有,则按照左对齐输出;
  2)数字:指定字段最小宽度,如果不足则用空格填充;
  3)小数点:用与将最小字段宽度和精度分开;
  4)精度:用于指定字符串重要打印的而最大字符数、浮点数小数点后的位数、整型最小输出的数字数目;

在这里插入图片描述

【例题2】给定如下一段代码,求它的输出内容。

#include <stdio.h>
int main()

    double x = 520.1314;
	int y = 520;
	
    printf("[%10.5lf]\\n", x);
	printf("[%-10.5lf]\\n", x);
	
	
	printf("[%10.8d]\\n", y);
	printf("[%-10.8d]\\n", y);

    return 0;

在这里插入图片描述

  • 输出答案如下:
[ 520.13140]
[520.13140 ]
[  00000520]
[00000520  ]
  • 我们发现,首先需要看小数点后面的部分,将要输出的内容实际要输出多少的长度确定下来,然后再看字段最小宽度,最后再来看左对齐还是右对齐。

  • 然后,我们来看看把不同类型的变量组合起来是什么效果;
#include <stdio.h>
int main()

    char name[100] = "Zhou";
    int old = 18;
    double meters = 1.7;
    char spostfix = 's';
    printf("My name is %s, %d years old, %.2lf meter%c.\\n", 
        name, old, meters, spostfix);
    return 0;

<

❤️爆肝二十万字《java从零到精通教程》,贴心保姆教你从零变大佬❤️(建议收藏),学不会找我!(代码片段)

💂个人主页:Java程序鱼🤟整个Java体系的面试题我都会分享,大家可以持续关注💬如果文章对你有帮助,欢迎关注、点赞、收藏(一键三连)和订阅专栏哦💅有任何问题欢迎私信,看到会及时... 查看详情

❤️制作人工智能qq机器人,视频教程+源码❤️内容超级丰富,慢慢看!

...四.b站主页​​推荐系列教程,推荐的一定是好的!​​十万字python基础教程,学不会主页联系找我!​​​​python处理美女视频为gif详细教程​​​​qq机器人制作系列讲解专栏​​ 查看详情

❤️手把手教将java程序部署到centos7带视频教程肝了十万字全网最详细教程强烈建议收藏❤️(代码片段)

前面给大家分享了不少的面试题和项目资料。后台有很多的小伙伴私信我,不会将程序部署到服务器,小孟必须给大家安排到位!还出了详细的视频教程,肝了两个周,出的这个教程,希望大家三连多多支持下&... 查看详情

爆肝一周面试10多家中大厂后的万字总结——❤️javaweb篇❤️(建议收藏)(代码片段)

⭐欢迎订阅《大厂面试突击》专栏,面试10多家大厂总结出的高频面试知识,免费阶段大家赶快订阅⭐更多精品专栏简介点这里⭐更多大厂全路线学习视频+笔记,PC端看左侧「关于作者」,手机端「私信」博主... 查看详情

❤️用一万字给小白全面讲解python编程基础问答❤️《记得收藏不然看着看着就不见了》(代码片段)

❤️用一万字给小白全面讲解python编程基础问答❤️《😀记得收藏不然看着看着就不见了😀》🏳️‍🌈目录🏳️‍🌈开讲之前我们先庆祝我国赢得34金牌。🏳️‍🌈中国加油!!🏳... 查看详情

☀️光天化日学c语言☀️(25)-浮点数的精度问题|浮点数判等千万不要写成a==b(代码片段)

最新更新:《十万字C语言动漫教程》🙉饭不食,水不饮,题必须刷🙉还不会C语言,和我一起打卡!🌞《光天化日学C语言》🌞LeetCode太难?上简单题!🧡《C语言入门100例》🧡L... 查看详情

c语言学习笔记-入门整合篇(十万字长文)(代码片段)

(该篇学习内容全部来自于C语言中文网,本篇内容仅仅是简易学习笔记,以自己的理解+网站部分描述结合+个人补充,并不适合编程初学者观看!!!需要有一定的编程基础)数据在内存中存储内存条包含了上亿个电... 查看详情

❤️万字总结,c语言的这些万年坑你还在踩吗(基础篇)❤️(代码片段)

 目录一,写在前面二,概念基础1,数据类型2,数据类型的大小3,局部变量和全局变量4,变量的访问规则及变量的作用域和生命周期5,字符串 6,转义字符7,strlen8,数组创建9,关键... 查看详情

肝帝一周总结:全网最全最细十万字python教程,学不会找我!教到你会为止!!内容超多,建议收藏慢慢看!(代码片段)

文章目录推荐:个人推荐学习系列,推荐的一定是好的!0、源码下载地址一、内容过多,前言一定要看二、python入门三、python缩进四、Python注释1.单行注释2.多行注释五、Python变量1.变量定义理解2.变量名命名3.分... 查看详情

❤️docker超详细基础教程,快速入门docker首选❤️(万字长文建议收藏)(代码片段)

一、docker概述1.什么是dockerDocker是一个开源的应用容器引擎,基于Go语言并遵从Apache2.0协议开源。Docker可以让开发者打包他们的应用以及依赖包到一个轻量级、可移植的容器中,然后发布到任何流行的Linux机器上,也可... 查看详情

❤️五万字《十大排序算法》动图讲解❤️(建议收藏)(代码片段)

您可能感兴趣的文章推荐画解顺序表画解链表画解栈画解队列画解哈希表画解二叉树画解图目录零、算法概述一、插入排序二、冒泡排序三、选择排序四、计数排序五、基数排序六、归并排序七、快速排序八、随机快速九、希尔... 查看详情

❤️五万字《十大排序算法》动图讲解❤️(建议收藏)(代码片段)

您可能感兴趣的文章推荐画解顺序表画解链表画解栈画解队列画解哈希表画解二叉树画解图目录零、算法概述一、插入排序二、冒泡排序三、选择排序四、计数排序五、基数排序六、归并排序七、快速排序八、随机快速九、希尔... 查看详情

❤️万字pythonmysql从入门到精通详细教程❤️再也不用担心学不会数据库了❤️(代码片段)

文章目录前言⭐集合三万字基础教程⭐一、SQL详细教程二.mysql入门详细教程⭐转pythonmysql⭐三、PythonMySQL入门连接3.1基本环境准备3.2连接四、PythonMySQL创建表4.1创建数据库4.2检查数据库是否存在五、PythonMySQL插入表5.1插入表格5.2插... 查看详情

golang✔️实战✔️10种加密方法实现☢️万字长文建议手收藏☢️(代码片段)

【Golang】✔️实战✔️10种加密方法实现☢️万字长文建议手收藏☢️概述md5SHA-2sha256sha512计算文件哈希base64AESDESDES3DESRSA函数详解GenerateKey()MarshalPKCS1PrivateKey()pem编码生成公钥私钥实现加密概述今天来带大家实现以下最常用的10中... 查看详情

golang✔️实战✔️10种加密方法实现☢️万字长文建议手收藏☢️(代码片段)

【Golang】✔️实战✔️10种加密方法实现☢️万字长文建议手收藏☢️概述md5SHA-2sha256sha512计算文件哈希base64AESDESDES3DESRSA函数详解GenerateKey()MarshalPKCS1PrivateKey()pem编码生成公钥私钥实现加密概述今天来带大家实现以下最常用的10中... 查看详情

面试10多家中大厂后的万字总结——❤️集合篇❤️(精心打磨,建议收藏)(代码片段)

⭐欢迎订阅《大厂面试突击》专栏,面试10多家大厂总结出的高频面试知识,免费阶段大家赶快订阅⭐更多精品专栏简介点这里⭐更多java面试学习资料,看左侧关于作者或者私信「资料」获取幸福,不是长生不老&... 查看详情

肝了10万字,go语言保姆级编程教程2021最新版(建议收藏)(代码片段)

友情提示:编辑器显示12万多字,先点赞,关注,收藏,一键三连支持,再学习。本文对比C语言进行学习Go语言,如果你有C语言基础,学习Go语言会容易很多。Go语言保姆级教程目录什么是Go语言Go语... 查看详情

只要你认真看完一万字☀️linux操作系统基础知识☀️分分钟钟都吊打面试官《❤️记得收藏❤️》(代码片段)

只要你认真看完一万字☀️Linux操作系统基础知识☀️分分钟钟都吊打面试官《❤️记得收藏❤️》目录🏳️‍🌈开讲之前我们先庆祝我国赢得38金牌。🏳️‍🌈中国加油!!🏳️‍🌈😊开... 查看详情