写点什么

[C 语言] 打开 C 的大门

作者:泽En
  • 2022 年 2 月 14 日
  • 本文字数:4183 字

    阅读完需:约 14 分钟

[C语言]打开C的大门

Hello,各位大佬们好,这是我第一次来 InfoQ 平台上写作,还请多多关照。也祝 infoQ 平台越来越好💝

C 语言是什么

简单的来说:C 语言是一种计算机程序设计语言,它既具有高级语言的特点,又具有汇编语言的特点。

C 语言由美国贝尔研究所的 D.M.Ritchie 于 1972 年推出,在 1978 年之后 C 语言就已经先后被移植到了一种 大 中 小 型的微型机上了(注:微型机其实就是一个计算机系统)。可以作为工作中的 编写系统、设计语言以及应用程序等等,也可以实现程序上的一些语言的设计,编写不依赖计算机硬件的应用程序,可以说 C 语言的编写应用实际上范围是非常广泛的,因为它具备了非常厉害的数据处理能力,不仅仅是在软件开发上,而且各类科研都需要用到 C 语言,就像单片机,以及嵌入式开发等一些。

C 语言相较于其它语言有什么优势

  1. 资源占用少

  2. 运行速度快

  3. 可以方便的进行操作硬件

  4. 如果你要学嵌入式开发的话,以及通信,那首选就是 C 语言。

  5. C 语言可是资深老大哥了(ง •_•)ง

C 语言的特点

在这里我就用最简短的语句内容来表达了

  • 高效性: 做到了"🐟与🐻兼得",这里从 C 语言的发展史就可以得知了。

  • 灵活性: C 语言语法可以在原有的代码语法上进行创造,从而给程序员更多发挥的空间。

  • 功能丰富: 可以使用大量丰富的运算符(算术运算符、连接运算符、关系运算符、赋值运算符 和 逻辑运算符)以及自定义的结构类型,表达任何复杂的数据类型

  • 表达力👍: 语言形式,书写形式自由,结构规范完整,轻控完繁琐。

  • 移植性好: C 在不同的操作系统下,只需要简单修改或不修改,就可以进行跨平台程序开发。

打印 hello word

接下来教你如何在 C 语言当中打印 hello word,能成功的话就说明你已经正式踏上学习 C 语言过程了!

我用的编译器是:vs 2013  这个编译器在百度上可以下载,切记:官网,密钥上百度也有,这里我就不多去说明了。示例代码如下:

#include<stdio.h>
int main(void){ printf("hello word\n");
return 0;}
复制代码

那么这里来讲解下为什么是这个样子的(。・∀・)ノ゙嗨

  1. 第 3 行, 这个 int 带表的是整形的意思,那么这个 main 是主函数名,表示这是一个主函数,切记:每一个 C 程序都必须要有 main 函数,且有且只有一个在整个 C 程序当中,任何一个程序都是从 main 函数执行的。

  2. 第 4 行和第 6 行,{ }(作用域的使用提高了程序逻辑的局部性,增强程序的可靠性,减少代码与代码之间冲突)。

  3. 第 5 行,函数调用语句,printf 函数功能:把要输出的内容送到显示屏当中去显示(打印),是一个标准库函数,可以在程序中之间进行调用。注意:'\n'代表的是<换行>的意思。

  4. 第 7 行,return 返回,0 整形,返回到 main 函数当中,没什么好说的。

  •      注意:写代码的时候输入 字符必须是英文,字符必须是英文,字符必须是英文 重要事情说三遍\(@^0^@)/

完整的 C 程序

这个如果是刚入门是不要求你会的,只需要了解 C 语言程序由哪些组成就可以了。

示例代码如下:

#include<stdio.h>//                    arr本质上是一个指针int binary_search(int arr[],int k,int sz){   //算法的实现    int left = 0;//左边数组第一个下标    //右边数组第一个下标    int right = sz - 1;           /*  1 2 3 4 5 6 7 8 9 10      //根据左右下标求出中间的元素下标   0 1 2 3 4 5 6 7 8 9 */        while (left<=right)//当left等于right 就代表已经找到了k的下标    {         int mid = (left+right)/2;        if (arr[mid] < k)     //如果mid元素(4)比我找的元素(6)要<的话        {            left = mid + 1;   //4+1=5这里指的是元素        }        else if (arr[mid] > k)//如果mid元素(4)比我找的元素(6)要>的话        {            right = mid - 1;  //4-1=3        }        else        {            return mid;    //返回mid到函数当中去        }    }    return 1;//找不到返回给1}int main(void){    //二分查找    //在一个有序的数组中查找具体的某一个数字    //如果找到了返回这个数组的下标,找不到返回-1.    int arr[] = { 1, 2, 3, 4, 5, 6, 7, 8, 9, 10 };    int k = 7;    int sz = sizeof(arr) / sizeof(arr[0]);//sz元素的个数    //ret接收返回值      这里arr传递的只是数组首元素的地址    int ret = binary_search(arr,k,sz);//调用(二分查找)函数    if (ret == 1)    {        printf("找不到数组下标");    }    else    {        printf("找到数组下标:%d\n", ret);    }    return 0;}
复制代码

1.先去写这个函数该怎么用。

2.再去写这个函数该怎么实现。

这个就是大致完整的一个 c 语言程序,这个是实现,写一个函数实现一个整形有序的二分查找,当然现在我们说的都是基础,这个也只是我给大家看的一个例子,让大家认识到一个完整且规范的 c 语言该怎么写。我认为:C 程序主要包括以下部分:

预处理器指令函数变量语句 & 表达式注释当然,包括你的一个思维,逻辑,所以我推荐每次当我们写完一行代码,可以加注释,让你的这行代码,更加容易去理解。而且注释的好处就是,当你想看看你以前写的代码可以直接看你的注释行,那么我们就再介绍一下注释!

注释

// 单行注释  以 // 开始的单行注释,这种注释可以单独占一行。

/* 单行注释 */

/* 多行注释 多行注释 多行注释 */

/* */ 这种格式的注释可以单行或多行。您不能在注释内嵌套注释,

注释也不能出现在字符串或字符值中。

打印函数和输入函数(重点理解)

printf:功能是:打印格式化数据以进行打印,将 C 字符串按格式写入标准输出(粗壮)。如果格式包括指定器(从 %开始的子序),则格式下方的其他参数将格式化并插入到生成的字符串中,以替换其各自的指定器。

参数:包含要写给粗壮的文本的 C 字符串。它可以可选定包含嵌入格式指定器,这些指定器被后续其他参数中指定的值所取代,并按要求格式化。

说白了就是:格式输出, printf("<式样化字符串>",<参数表>);注意:切记再强调一下是英文,不是中文!

scanf:功能:从 stdin 读取格式化数据

从 stdin(stdin 是 C 语言中标准输入流,一般用于获取键盘输入到缓冲区里的东西) 读取数据,并根据参数格式将其存储到其他参数指出的位置。其他参数应指向其格式字符串中相应格式指定的已分配对象。

参数:格式 ----包含控制从流中提取的字符的字符的字符序列的 C 字符字符处理方式:

  1. 空白字符:该功能将读取和忽略下一个非空白字符之前遇到的任何空白字符(空白字符包括空间、新线和选项卡字符 - 见 isspace --isspace,计算机函数,主要用于检查参数 c 是否为空白字符。)格式字符串中的单个空白验证从流中提取的任何数量的空白字符(不包括任何白空间字符)。

  2. 非空白字符:格式指定器(%)除外:任何不是白空间字符(空白、新线或标签)或格式指定器(以 %字符开头)的一部分的字符都会导致函数从流中读取下一个字符,将其与此非空白字符进行比较,如果匹配,则将其丢弃,并且该功能继续使用格式的下一个字符。如果字符不匹配,函数将失败,返回并离开流的后续字符未读。

  3. 格式规格:由初始百分比符号(%) 形成的序列表示格式指定器,用于指定要从流中检索并存储到其他参数指出的位置的数据的类型和格式。

  4. 最后,我在说下,输入输出函数(scanf 和 printf) 是使用最频繁的函数,各位必须要重点掌握,尤其是格式输入输出,C 语言的重难点,其实这种在后面多打学多了,自然就会了。所以要坚持下去。

C 语言程序的结构特点

一个 C 语言源程序可以有一个或者多个源文件组成。每个源文件可以由一给或者多个函数组成。预处理命令通常放在程序的最前面(#include)。每一个说明,每一个语句都必须以;(分号)结尾。源文件不论你有多少文件组成,C 语言有且只有一个 main 函数。标识符 关键字之间必须至少+一个空格以作为间隔,若已有明显的间隔符,可以不用。

编程规范

从书写清晰,便于阅读,理解,维护的角度出发,在书写程序时应遵循以下规则:

1.一个说明或一个语句占一行。

2.用{}括起来的部分,通常表示了程序的某一层次结构。{}一般与该结构语句的第一个字母对齐,并单独占一行。

3.低一层次的语句或说明可比高一层次的语句或说明缩进若干格后书写。以便看起来更加清晰,增加程序的可读性。

C 语言字符集

  • 首先,跟大家大致说说:字符是组成语言最基本的元素。C 语言字符由:

  • 字母 :小写字母 a~z,大写字母 A~Z,分别 26 个。

  • 数字 :阿拉伯数字 0~9 共 10 个。

  • 空格 :在这里说下它的种类形式:

  • 电脑键盘上的一个键,一般处于键盘最下面一行,是电脑键盘上长度最大的一个键。代表空一格,它在 GBA 模拟器默认控制器中起加速的作用。

  • 计算机知识里,空格是算为一个字符的,所以当你在网站里填写表格的时候,可以什么都不写,但是不要在空白项里按空格键,当你在搜索引擎搜索时,若忘了其中某个字,可用空格临时替代。空格也可作为一个个小的格子中空的格子。

  • GBA 拓展:一款模拟 GBA 游戏的软件,可以在非 GBA 平台中通过模拟的方式运行 GBA(任天堂公司发售的第二代便携式游戏机)游戏,运行游戏时还需要有相应游戏的 ROM(只读存储器)。

  • 标点和标识符:标点没什么说的,在这里重点说下标识符吧

  • 指:用来标识某个实体的一个符号,在不同的应用环境下有不同的含义。

标识符

变量名、函数名、标号、这些统一称作是标识符。除了库函名由系统定义之外,其余都是由用户自己定义的。C 语言规定,表示符只能由:字母(A~Z、a~z)、数字(0~9)也就是十进制、下划线(_)组成的字符串,并且第一个字符必须是由字母或者下划线。

注意:在标识符中,大小写是由区别的。例如:Book 和 book 是两个不同的标识符。关键字:关键字是 C 语言的词汇。它们对 C 而言比较特殊,不能用它们作为标识 符(如,变量名)。许多关键字用于指定不同的类型,如 int。还有一些关 键字(如,if)用于控制程序中语句的执行顺序。在表 2.2 中所列的 C 语言关键字中,粗体表示的是 C90 标准新增的关键字,斜体表示的 C99 标准新增的 关键字,粗斜体表示的是 C11 标准新增的关键字。

当然 C 语言关键字也分为以下几类:

类型说明符、就像是数据类型说明变量和函数的,int char 等语句定义符、用于表示语句的功能像 if else 这种预处理命令字、用于表示一个预处理命令像 C 语言头文件 include。

最后

第一次在 infoQ 平台上写作,还请多多关照💟


​​

发布于: 2022 年 02 月 14 日阅读数: 67
用户头像

泽En

关注

还未添加个人签名 2022.01.29 加入

CSDN嵌入式领域新星创作者、2021年度博客之星物联网与嵌入式开发TOP5、2022博客之星TOP100 掘金创作者

评论 (2 条评论)

发布
用户头像
多多输出,让更多人看到你。加油。
2022 年 02 月 15 日 00:32
回复
好的(^∀^●)ノシ
23 小时前
回复
没有更多了
[C语言]打开C的大门