IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> C++知识库 -> (二)零基础入门C语言 --- C语言之入门课程 -> 正文阅读

[C++知识库](二)零基础入门C语言 --- C语言之入门课程

? ? ? ? 让我们来回顾一下上一节课讲的内容,在上一节课中,我们主要讲述了C语言的几个部分

????????第一个:C语言的程序结构,在C语言中,程序的运行是从main函数开始的,一直运行到main函数的末尾。其中可能还有,一些预处理器相关的声明。

? ? ? ? 第二个:C语言的基本语法,每一条语句后面都必须增加一个英文字母的分号,编译器会自动忽略空格,C语言中有两种注释方法,分别是单行注释//和多行注释/**/,C语言的标识符具有一定命名规则,C语言具有很多关键字,这些都需要熟悉。

? ? ? ? 第三个:C语言的数据类型,在C语言中有丰富的数据类型,算术类型有char,short,int,long,float,double等数据类型,知道了这些数据在计算机中是如何存储的,同时我们还了解了sizeof这个关键字的作用,另外还有void类型的用法,当然C语言不止这些类型,后面我们还会继续向你的数据库中添加内容。

? ? ? ? 第四个:C语言的变量和常量,变量就是在程序运行过程可以改变的量,定义一个变量,实际上就是给某一个存储器单元地址赋予了名字,我们能够更加方便地操作,我们了解了变量的一些用法;与此同时,我们还讲述了C语言中的常量,常量即常数量,在程序运行过程中,其值保持不变。在C语言中,我们可以直接定义常量,同时我们也可以间接定义常量。直接定义常量很简单,根据常量的规则,直接写出来即可;间接定义常量,有两种方法,一种是利用预处理命令#define,另一种是使用const关键字定义常量,#define常量和const常量有所不同,所以需要加以理解和区分。

? ? ? ? 第五个:C语言的运算符,C语言中具有丰富的运算符,其中包括算术运算符,关系运算符,位运算符,逻辑运算符,赋值运算符和杂项运算符,我们需要了解,并熟练掌握各种运算符的用法和其优先级顺序,在后面的嵌入式学习中才能更加得心应手。

????????好了,以上就是上一节课讲述的内容。内容并不算太多,大家应该能很快就理解,这节课我们接着来讲,这节课我们主要讲的内容是,C语言中的三大结构流程语句,顺序结构,条件结构和循环结构。

一、顺序结构语句

? ? ? ? 顺序语句比较好理解,那就是所有语句,一条一条按照从上到下的顺序执行,这里就举一个简单的栗子:

#include <stdio.h>

int main(void)
{
    printf("这是第一条执行的语句!\r\n");
    printf("这是第二条执行的语句!\r\n");
    printf("这是第三条执行的语句!\r\n");

    return 0;
}

以上就是一个顺序结构,从main函数第一句话开始,从上到下按照顺序执行。输出结果如下:

?很明显,输出的顺序是从上到下,一条一条执行的。

二、条件结构语句

? ? ? ? 判断结构语句主要的作用就是,当某个或者某些条件成立的时候,我们执行某一套程序;条件不成立的时候我们执行另一套程序。在C语言中判断结构语句有两种,一种是if...else...语句,另一种是switch...case...语句,我们首先来看if...else...语句

? ? ? ? 1、if...else...语句

? ? ? ? 首先让我们来看几个if...else...语句的栗子

#include <stdio.h>

int main(void)
{
    int a=1,b=2,c=3,d;

    if((a+b)==c)
    d = 4;

    printf("d: %d\r\n",d);

    return 0;
}

这是一个只有if的语句,当a+b的值与c相等时,才会执行。

#include <stdio.h>

int main(void)
{
    int a=1,b=2,c=3,d;

    if((a+b)!=3)
    {
        d = 2;
    }else{
        d = 6;
    }

    printf("d: %d\r\n",d);

    return 0;
}

这是一个if...else...语句,如果if语句中的条件成立了,就会执行d=2,否则就会执行d=6语句;

#include <stdio.h>

int main(void)
{
    int a=1,b=2,c=3,d;

    if(a==2)
    {
        d = 1;
    }else if(b==3)
    {
        d = 2;
    }else if(c==3)
    {
        d = 3;
    }else
    {
        d = 4;
    }

    printf("d: %d\r\n",d);

    return 0;
}

上述代码,展示了连续if...else..if...else 语句,这种结构,会一个一个判断if语句内的条件,如果条件成立,就执行下列语句块,如果不成立,则继续判断下一个if语句内的条件,直到没有了if语句或者遇到了else语句。

? ? ? ? 2、switch...case...语句

? ? ? ? switch语句也是一个条件分支语句,我们首先来看一个栗子,

#include <stdio.h>

int main(void)
{
    int a = 1,b;

    switch(a)
    {
        case 1:   b = 1;break; 
        case 2:   b = 2;break;
        case 3:   b = 3;break;
        case 4:   b = 4;break;
        default:  b = 0;
    }

    printf("b: %d\r\n",b):

    return 0;
}

上述语句就是switch语句常用的语法结构,首先判断a的值,根据a的值去执行对应的语句,末尾的default就是在所有条件都不满足的条件下,应该执行的语句。注意,switch语句的条件,只能是整数类型!否则会报错。注意每个条件成立执行的语句末尾应当添加一个break语句,来跳出switch语句,除非你是刻意这样编写代码的,让我们来举一个栗子来看:

#include <stdio.h>

int main(void)
{
    int a = 1,b;

    switch(a)
    {
        case 1:   b = 1;
        case 2:   b = 2;
        case 3:   b = 3;
        case 4:   b = 4;break;
        default:  b = 0;
    }

    printf("b: %d\r\n",b):

    return 0;
}

这段代码,执行的结果是什么呢?答案是 b: 4;为什么b的值是4呢?这是因为switch语句的执行原理,switch语句执行原理是从满足条件的地方开始执行语句后面的所有语句,直到遇到break或者执行到最后一条语句。

三、循环结构语句

? ? ? ? 顺序结构和条件结构对于刚刚学习C语言的新手来说,难度不大,比较容易理解,但是很多新手在循环结构语句中,常常把自己绕晕,分不清东南西北,最后循环做的一塌糊涂。接下来我们来仔细地讲解一下循环语句,循环,就是重复的执行某一套程序,其中会有一个循环变量用于控制循环的起始和退出条件,其实,对于循环语句来说,我们搞清楚了循环变量的意义,就很容易能够理解循环语句。C语言中有三大循环语句,while循环,do...while循环,for循环,接下来让我们逐个讲解。

? ? ? ? 1.while循环语句

? ? ? ? 让我们先来看一看,while语句的一个栗子

#include <stdio.h>

int main(void)
{
    int i = 10,a = 0,sum = 0;

    while(i)
    {
        sum += a;
        a++;
        i--;
    }
    
    printf("sum = %d,a = %d\r\n",sum,a);

    return 0;
}

? ? ? ? while语句首先会判断其后面的条件,如果后面的条件为真,则执行后面的语句块;如果后面的条件为假,则直接跳出while循环语句。在这里,循环变量为i,每次执行完语句后,i都会减一,很明显,这里的i是循环变量,它的意义就是循环指定次数的代码。在这里,i从10开始,每次执行一次代码减一,一直到0,循环条件为假,然后退出while循环。那while循环里的重复执行的语句又是什么呢?sum表示的是累加和,每次和a变量进行一次累加,累加完之后,a的值自增一。那就相当于0+1+2+3+4.......加到多少,取决于循环多少次,这里循环10次,最终加到9。

? ? ? ? 对于循环语句的分析,我们首先需要判断其执行的次数是多少,然后接着看需要执行代码的内容是什么,如果初学者一下看不出来,初学的时候可以每个循环结构都在自己的脑子里执行一遍,一步一步的走下去,最终得到结果。经过长时间的训练,对循环结构的分析就了如执掌了。

? ? ? ? 2.do...while语句

? ? ? ? 我们首先来看看do...while语句的语法

#include <stdio.h>

int main(void)
{
    int i = 10,a = 0,sum = 0;

    do
    {
        sum += a;
        a++;
        i--;
    } while(i);
    
    printf("sum = %d,a = %d\r\n",sum,a);

    return 0;
}

????????do...while和while语句其实很像,语法首先会执行一遍do后面的语句块,然后再判断while后面的条件,如果条件为真,则继续执行语句块中的内容;如果条件为假,则直接跳出循环语句。实质上就是,先执行一遍循环体的内容,然后再判断。在这里,我们对循环一步步分析,最终得到的循环需要计算的表达式为sum = 0+1+2+3+4+5+6+7+8+9,两种循环得到的结果是一样的,但是执行的顺序有所差别,主要就是do...while循环语句会首先执行一遍循环体内的程序,再判断条件。

? ? ? ? 3.for循环

? ? ? ? for循环相对于while循环,语法稍微麻烦一点,但是for循环相比来说更加灵活。让我们来看一个for循环的栗子,同样执行的是0+1+2+3+4+5+6+7+8+9

#include <stdio.h>

int main(void)
{
    int i,sum;

    for(i=0;i<10;i++)
    {
        sum+=i;
    }
    
    printf("sum=%d\r\n",sum);
    return 0;
}

for循环的格式是: for(循环初始操作;循环条件判断;每次循环结束操作){循环体}

for循环中,有三个操作,

????????第一个为循环初始操作,就是说,你在循环开始的时候,需要执行什么语句。

????????第二个操作为循环判断条件,只有满足你设定的某个条件的时候,才会退出循环语句。

????????第三个操作为每次循环结束操作,这个指的是,程序每次执行完一次后,将执行什么操作。

在这里,循环初始操作是给i赋值0,循环判断条件是i>=10的时候退出循环,每次循环体执行一次后,在执行一次i++,让i自增1;

? ? ? ? 这个for循环,同样达到了计算sum = 0+1+2+3+4+5+6+7+8+9的目的。

????????三种循环语句各有其特色,务必要牢牢掌握三种循环语句的语法结构,另外,还要学会如何构造循环,让我们的程序代码更加简洁,不过大家不用担心,在后面,我们有大量的练习帮助你快速掌握构造循环。学习编程语言,没有什么诀窍,只有不断地练习,熟能生巧。

四、循环控制语句

? ? ? ? 在C语言中,除了用循环变量控制循环的顺序,还有几个循环控制语句可以用来改变循环的执行结构。

? ? ? ? 1.break语句

? ? ? ? break语句,用于直接跳出整个循环体。我们来看一个栗子。

#include <stdio.h>

int main(void)
{
    int sum=0,i=0;
    while(1)
    {
        sum+=i;
        i++;
        if(sum>100)
        {
            break;
        }
    }
    
    printf("sum=%d\r\n",sum);

    return 0;
}

在这个例子中,我们的while的判断条件一直是1,所以这是一个死循环,程序不可能会退出这个循环。但是,在循环语句中,我们存在一个条件,如果sum的值大于100的时候,我们执行break语句。由于break语句可以退出整个循环,sum满足条件的时候,仍然可以正常退出while循环。这并没有构成死循环。

????????? 2.continue语句

? ? ? ?continue语句用于跳出当前的循环体,直接开始下一次循环。同样,我们举一个栗子来看

#include <stdio.h>

int main(void)
{
    int sum,i;

    for(i=0;i<10;i++)
    {
        if(i==6||i==8)
        {
            continue;
        }
        sum+=i;
    }

    return 0;
}

?这个程序同样是我们刚刚执行的sum = 0+1+2+3+4+5+6+7+8+9的程序,但是在这里我们有一个条件判断,那就是当i等于6或者i等于8的时候,执行了continue语句。我们刚刚说了,continue语句是跳过当前的循环体,直接开始下一次循环,所以,i=6和i=8的时候,不会执行累加程序。此处,我们计算的sum = 0+1+2+3+4+5+7+9

? ? ??3.goto语句? ? ?

? ? ? ? goto语句,可以随意跳转到程序的某个地方,但是需要先给程序进行一个标记,但是我们不建议使用,因为这样会打乱程序的结构,使得程序的可读性变差,但有的时候也可以使用,但是尽量少用或者不用,goto语句完全可以使用其他的方式实现。让我们来看一个使用例子。

#include <stdio.h>

int main(void)
{
    int sum=0,i=0;
    for(;;i++)
    {
        sum+=i;
        if(sum>=100)
        {
            goto designer;
        }
    }

designer:
    printf("sum=%d\r\n",sum);

    return 0;
}

上述程序中体现了goto的用法,for循环中,执行的是从0开始累加的操作,如果sum大于等于100,则执行goto语句,跳转到designer标号处执行程序,打印出sum的值。这就是goto的用法,在使用之前,需要在程序段中定义一个标号,然后用goto语句进行跳转。正如我们上面说的,goto语句会打乱程序执行的顺序,使得程序的可读性变差,不建议使用goto语句。

? ? ? ? 这就是我们这节课讲的内容,C语言的三大程序结构,希望各位勤加练习,牢牢掌握基础语法在后面才能融会贯通,学习更加轻松。

  C++知识库 最新文章
【C++】友元、嵌套类、异常、RTTI、类型转换
通讯录的思路与实现(C语言)
C++PrimerPlus 第七章 函数-C++的编程模块(
Problem C: 算法9-9~9-12:平衡二叉树的基本
MSVC C++ UTF-8编程
C++进阶 多态原理
简单string类c++实现
我的年度总结
【C语言】以深厚地基筑伟岸高楼-基础篇(六
c语言常见错误合集
上一篇文章      下一篇文章      查看所有文章
加:2022-10-22 20:56:54  更:2022-10-22 21:00:35 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年5日历 -2024/5/19 3:41:08-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码