Bootstrap

[C语言]打开C的大门

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

C语言是什么

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

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

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

C语言的特点

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

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

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

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

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

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

打印hello word

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

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

#include

int main(void)
{
    printf("hello word\n");

    return 0;
}

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

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

完整的C程序

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

示例代码如下:

#include
//                    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 字符字符处理方式:

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平台上写作,还请多多关照💟

​​