嵌入式day4-创新互联

控制流:
 顺序结构
 分支结构
 循环结构

让客户满意是我们工作的目标,不断超越客户的期望值来自于我们对这个行业的热爱。我们立志把好的技术通过有效、简单的方式提供给客户,将通过不懈努力成为客户在信息化领域值得信任、有价值的长期合作伙伴,公司提供的服务项目有:主机域名雅安服务器托管、营销软件、网站建设、亳州网站维护、网站推广。

======================================
分支结构 :
 if    else if    else
 if(表达式)
     一条语句;
 
 if(表达式)
     一条语句;
 else
     一条语句;
 
 
 if(表达式)
     一条语句;
 else if(表达式)
     一条语句;
 
 
 if(表达式)
     一条语句;
 else if(表达式)
     一条语句;
 else
     一条语句;
 
代码块:
{

}
====》效果: 相当于 一条语句
 
======================================
switch  case :
 * 姿势 :
 switch(表达式)
 {
     case 选项:
         多条语句;
         break;             //结束switch case 语句
     case 选项:
         多条语句;
         break;             //结束switch case 语句
     case 选项:
         多条语句;
         break;             //结束switch case 语句
     case 选项:
         多条语句;
         break;             //结束switch case 语句
     default:            // 该default 可以省略
         多条语句;
         break;             //结束switch case 语句
 }
 *解释:
     做选择,表达式 的 值是多少,就去下面寻找 哪一个 选项,然后执行其对应的语句
 attention:
     选项只能是 整型数(包含字符)
     选项值不能重复
     
break :和 switch 结合 使用,可以结束 switch 语句

练习:
 中美分数 : switch case 来做
     中美分数替换:
     手动输入一个分数,看到底是 ABCDE中的哪一个
     90 ~ 100 : A        
     80 ~ 89  : B
     70 ~ 79  : C
     60 ~ 69  : D         
     0  ~ 59  : E
     其他:   : error

==========================================================

循环结构:
 for     while     do while
 
============
 

for :
 * 姿势:
     for(表达式1;表达式2;表达式3)
         有且仅有一条语句A;
     
     * 分析:
         表达式1 和 表达式3 都是 赋值表达式   = += -= *= ....
         表达式2 是 判断表达式 // 可以判断真假(非0/0)
         三个表达式都可以省略
         当表达式2 省略表示 死循环(永远成立)
         for(;;)
             ;
         
     * 解说:
         1* 执行 表达式1
         2* 判断 表达式2 是否成立,成立则继续往下执行,不成立则退出 循环
         3* 执行 那一条 语句 A ;
         4* 执行 表达式3
         5* 继续去执行 第二步(2*)
         
     * for 循环和 代码块结合:
     
         for(表达式1;表达式2;表达式3)
         {
             猥琐发育;
         }
     
 
     
 for()
     ;        //空语句
 
练习:
 0. 打印 1 2 3 4 ... 100
 1. 打印 1+2+3+...+100 的和
 2. 如果碰到 数字 带 5  就跳过 ,不算入总和
 3. 如果碰到 68 就结束 for 循环
 
continue : 和 for 循环配合, 结束所在 的for 循环 的 当次 循环体,然后去执行 表达式3
break :和 for 配合,结束所在的for循环

=================================================

while :
 while(表达式)
     一条语句A;
 
 *解释:    
     1* 判断表达式是否成立,如果表达式成立,则执行语句A,然后再去判断表达式
         如果表达式不成立,则结束while
 
 * while 循环 和 代码块结合:
     while(表达式)
     {
         
     }
     
=================================================
do  while :
 姿势:
     do
         一条语句A;
     while(表达式);
     
     *解释 :
         * 先执行 语句A ,然后去判断表达式是否成立
         * 如果表达式成立,继续执行语句A,在去判断表达式
         * 如果表达式不成立,则直接退出;
         
 do while 和 代码块 结合:
 
 do
 {
     
     
 }
 while(表达式);

============
总结:
 for 和 while 和 do while 都是 循环语句
 
break 和 循环语句 进行 配合,结束所在的循环
continue 和 循环语句 进行 配合,结束当次循环(立马结束循环体(代码块)),进入到下一次循环中

===================================================================

跳转语句:
 goto :
     
 * 姿势 :
     
 标签:    某条语句;
             ....
         goto 标签;
         
attention :
 goto 语句的标签 只能和 goto 在同一 函数内
 
应用:
 goto 应用在 需要 立马跳出 多层 循环
     for()
     {
         for()
         {
             
             for()
             {
                 
                 goto yy;
             }
             goto zz;
         }
         
     }
     
yy: printf("....\n");
 return -1;
zz: printf("打印个错误\n");
 return -2;
qq:
 return -3;

=====================================================
控制流 总结:
 顺序结构:
 分支结构: if  else if else    switch case  
 循环结构: for  while  do while
     特别注意: continue 、 break 和循环语句的配合  
     
     跳转语句: goto


数组:
 * 概念:
     同一类型数据 保存 在一块空间中
     
 * 作用:
     存储同一类型数据
     
 * 姿势:
     定义一个 数组类型 变量
     
     存储基础类型 变量名字[元素个数];
     
     
     数组类型 : int [5];  ====>这就是 一维数组 类型

     定义一个数组类型变量:
         int arr[5]; ===>在内存中占用若干个字节,该空间取名为arr
             若干个字节: 类型是 int [5] : 里面可以存放5个int类型,总共20个字节
             
     例子:
         short arr[10];  // 在内存中占用 10*2 个字节空间,该空间命名为arr
                         //  该空间 可以存放 10 个short 类型
                         
// 非常经典的话:
 数组的名字 是 数组的首地址  
                         
 * 给数组赋值 :
// 经典的话:
     数组一旦定义好,该空间固定,就不允许改变
     数组定义好后,只能通过 下标 的方式 给里面的 成员 一一赋值
     下标从0开始
     
     arr[下标] : ----》 得到 某 下标 所指示 的那块空间
     
     short arr[10];
     arr[0] = 10;
     arr[9] = 25;
     
 * 初始化:
     * 不完全初始化:
         int arr[8] = {10,20};
             // 下标为0的地方存放 10 ,下标为1的地方存放20 其他全部变成 0
             int arr[8] = {0};  //清零的效果    
         int arr[8] ={[5]=10,[7]=25};
         
     * 完全初始化:
         int arr[8] = {1,2,3,4,5,6,7,8};
         int arr[] = {1,2,3,4,5};

=============================================================
一维数组:
 short arr[5];  // 可以存放 5 个short 类型
 

一维数组中 存放了 的元素  是 一维数组
 short arr[5]  // 数组类型  short [5]
 
 int arr[10];  ===> 存放10个int类型
 
向存放 : 10 个 short [5] 类型
 
 short arr[10][5] ;  //  一维数组里面存放的都是一维数组,称之为二维数组
     // 里面可以存放  10 个  short [5] 数据
     
=====》
二维数组;
 * 姿势:
     基础类型  变量名字[一维数组个数][每个一维数组中的元素个数];
     
     long arr[2][3];
     //  该数组 有 2个  long [3]类型 数据
     long [3] 类型: 含有3个 long 类型 数组
     
 * 定义变量:
     short arr[2][3];  变量名字: arr    变量类型: short [2][3]
     
 * 赋值:
     通过下标赋值:
         short arr[2][3];
         
         arr[0][0] = 10;
         arr[0][1] = 20;
         .....
         
 * 初始化:
     不完全初始化:
         int arr[2][3]={10,20,30,40};
             arr[0][0]为10
             arr[0][1]为20
             arr[0][2] 为 30
             arr[1][0] 为40
             其他 全部为 0
             
         int arr[2][3]={[0][1]=50,[1][1]=60};
         
     
     完全初始化:
         int arr[2][3]={10,20,30,40,50,60};
         int arr[2][3]={{10,20,30},{40,50,60}};
         int arr[][3] = {{10,20,30},{40,50,60},{40,50,60},{40,50,60}};


        =======================================================
指针:
 * 地址                 (门牌号)
 
 * 姿势:    
     定义一个指针类型变量:
         指针类型 变量名字;
         
         指针类型是什么??
         
 
 * 操作:
     & : 取地址   
     * : 解引用
     
=================        
& : 取地址
 
 int a = 0x11223344;
 
     
==============
* : 解引用

指针的寻址:

你是否还在寻找稳定的海外服务器提供商?创新互联www.cdcxhl.cn海外机房具备T级流量清洗系统配攻击溯源,准确流量调度确保服务器高可用性,企业级服务器适合批量采购,新人活动首月15元起,快前往官网查看详情吧


当前题目:嵌入式day4-创新互联
地址分享:http://pwwzsj.com/article/csgijo.html