嵌入式实训——day2

循环语句

表达式1:循环变量的初始状态
表达式2:循环的判断条件
表达式3:循环变量的改变

1、for循环
      for(表达式1;表达式2;表达式3)
     {
            循环体;
     }

2、while循环

           表达式1;
           while(表达式2)
          {
              循环体;
              表达式3;
          }
 

3、do...while循环
           表达式1;
           do
          {
            循环体;
            表达式3;
           }while(表达式2);

 

函数:

  (1)库函数

             1)引入头文件

             2)函数调用

                  变量 = 函数名(实际参数列表);

  (2)自定义函数
            1)函数声明
                  函数返回值类型    函数名(形式参数列表);
            2)函数定义
                  函数返回值类型    函数名(形式参数列表)
                  {
                               函数体;
                               return  变量;
                  }
             3)函数调用
                  变量 = 函数名(实际参数列表);

标识符:
    (1)由数字字母和下划线组成
    (2)不能由数字开头
    (3)不能与关键字重名    

关键字:32个   由系统定义的   全都是小写
      数据类型(用于定义变量或类型):char double float  int long  short struct union void enum 
          signed  unsigned
      控制语句:break case continue default do  else for  goto if switch while
     存储类型:auto register  extern static          
      const:只读
      return:结束函数
      sizeof:求所占内存大小(单位是字节)
      typedef:给已有类型取别名   typedef   int   sss;
      volatile:防止编译器优化的   

     (4)见名知意

数组:用来保存一组数据类型相同数据的集合
数组的定义:数据类型   数组名[数组的长度];
数组的长度只能是常量  
数据类型是数组里面每个元素的数据类型   

//定义一个长度为5的int数组
int  arr[5];         //arr的数据类型:int   [5]; 

//定义一个长度为7的float数组
float brr[7];       //brr的数据类型:float  [7];


部分初始化:未初始化的值为0
int arr[5]={1,2,3};
清空数组:int arr[5]={0};

全部初始化:全部初始化的时候可以省略掉数组长度不写
int arr[5]={1,2,3,4,5};
int arr[]={1,2,3,4,5};

int arr[5];
arr={1,2,3,4,5};       //error ,数组名实质上是一个地址,地址是常量

int arr[5];
arr[5]={1,2,3,4,5};       //error

int arr[]={0};          //没有意义

计算数组的长度:
(1)  sizeof(arr)/sizeof(int)
(2)  sizeof(arr)/sizeof(arr[0])

访问数组元素:数组名[下标]    下标必须从0开始
int arr[5] ;    arr[0] ~ arr[4]

数组元素的输入输出:
for(int i=0;i<len;i++)
{
    //scanf("%d",&arr[i]);
    printf("%d ",arr[i]);
}

一维字符数组
//定义一个长度为20的char数组
char str[20] = {'a','b','c','d'};
char str[20] = "abcd";       sizeof(str)=20         strlen(str)<====>strlen(&str[0])=4
char str[] = "abcd";           sizeof(str)=5           strlen(str) = 4
char str[] = {'a','b','c','d'};      sizeof(str)= 4        strlen(str) = ?
字符串的特点:以\0作为结束标志
求字符串的长度:int len = strlen(字符串的首地址);

数组的输入输出:
for(int i=0;i<len;i++)
{
    //scanf("%c",&arr[i]);
    printf("%c",arr[i]);
}

%s---->字符串的格式控制符
printf("%s\n",字符串的首地址);      printf("%s\n",str);
scanf("%s",字符串的首地址);          scanf("%s",str);

指针:
指针的定义:数据类型    *指针变量名;
数据类型:指针所指向的变量的数据类型
int  *p;   //p是一个指针,指向一个int变量,p的值是一个Int变量的地址         指针P的数据类型:int *
在32位编译器下所有数据类型的指针都占4个字节

int i = 10,*p = &i;   //p指向i
*p实质上就是I的一个别名,操作*p就是在操作i


* 在C语言中的三种用法:
(1)乘法
(2)指针的定义      int  *p;
(3)取值运算符            *p;    //*号前面由数据类型就是在定义指针,否则是在取值


野指针:没有具体指向一个合法的对象
int *a = NULL;     //空指针 
*a = 52;
操作空指针和野指针在C语言中都是不合法的

 

课后作业:

填空题:
1、设x为int型变量,执行以下语句,x=10; x+=x-=x-x; x的值为___20___    
2、设x,y,z和t均为int型变量,执行以下语句:x=y=z=1; t=++x||(++y&&++z); 后x,y,z,t的值分别为__x=2,y=1,z=1,t=1_______ 
3、有一整型变量t,表达式t=1, t+5, t++的值是___2___
4、有一整型变量t,表达式t=(1, t+5, t++)的值是 ______ (t没有初始化,所以是随机值) 

代码典型题目

第3题:用自定义函数实现数组元素的输入输出

参考:

#include <stdio.h>
//函数返回值类型:函数名(形参列表)
void output(int *arr,int len);
void output(int *arr,int len)
{
   int i=0;
   for(i=0;i<len;i++)
  {
     printf("%d  ",*(arr+1));
  }
)
int main()
{
   int arr[5]={1,2,3,4,5};
   output(arr,5);
}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值