嵌入式初学(四)C语言实战二_凉论江的博客-程序员宝宝

技术标签: c语言  嵌入式  

C语言语法

1.判断
if语句:if(a=0)——先执行a=0;然后判断 if(a)。
以后编程写成 if(0==a)
2.循环结构
for():
while():

函数 :函数名+函数主体

void fun (int a,int b)

递归算法:使用递归算法需要有一个,明确的停止值让递归停止

 #include<stdio.h>                                                               
   int sub (int a)
  {
    
      int sum;
      if(a==1)//停止值
      {
    
          return 1;
      }
      else
      {
    
          return sum=a*sub(a-1);
      }
      return sum;   
  }

  int main()
  {
    
      int sub();
      int a,b;
      scanf("%d",&a);
      b=sub(a);
      printf("result=%d\n",b); 
}

函数的参数传递

参数传递的本质是数值的传递,并不会对变量本身有任何影响。是实参将值传递给形参 ,实现调用函数的功能。
如果想通过调用函数,实现对实参值的修改,需要通过指针来修改地址。

  1 #include<stdio.h>
  2 int main()
  3 {
    
  4     int ex();
  5     int a=5;
  6     int b=6;
  7     ex(&a,&b);                                                             
  8     printf("%d,%d",a,b);
  9     return 0;
 10 
 11 }
 12 
 13 int ex(int* a,int* b)
 14 {
    
 15     int c;
 16     c=*a;
 17     *a=*b;
 18     *b=c;
 19 }

指针:

本质是变量,但是存储的数据是地址,通过这个地址能找到我们想要的数据

常量指针
指针指向的是一个常量 const +数据类型* +指针名(地址可修改,值不行)伪常量
不可通过修改指针的方式,对值进行修改。

  In function ‘main’:
 error: assignment of read-only location ‘*ptr’
      *ptr=b;

指针常量
指针是一个常量,指向不可被修改。 数据类型* + const +指针名(地址不可修改,值可以
指针ptr不能修改,不能将其他变量的地址赋给指针常量

 In function ‘main’:
 error: assignment of read-only variable ‘ptr’
     ptr=&b;

二级指针:*(ptr1)——(&a)——a

 1 #include<stdio.h>
  2 int main()
  3 {
    
  4     int a=10;
  5     int* ptr=&a;
  6     int** ptr1=&ptr;                                                       
  7     printf("%d\n",*(*ptr1));
  8     return 0;
  9 }
  输出结果:10

经典题目:猴子第一天摘了若干个桃子,当即吃了一半,还不解馋,又多吃了一个;第二天,吃剩下的桃子的一半,还不过瘾,又多吃了一个;以后每天都吃前一天剩下的一半多一个,到第10天想再吃时,只剩下一个桃子了。问第一天共摘了多少个桃子?

#include "stdio.h"
int sumPeach(int day)
{
    
    if (day == 10)
        return 1;
    else
    return 2 * (sumPeach(day + 1) + );
}
int main()
{
    
    int sum;
    sum=sumPeach(1);
    printf("The first day of picking peaches number is:%d\n",sum);
}
结果
The first day of picking peaches number is:1534
版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/weixin_45998055/article/details/113174164

智能推荐

Perl中的环境变量%ENV_波特王子的博客-程序员宝宝_perl 环境变量

Perl中有一个叫做%ENV的环境变量,和其它的HASH散列一样,它可以被赋值,被打印。打印的方法:while(my ($key,$value)=each%ENV){    print "$key: $value\n";}赋值的方法:$ENV{'key'}="value";但是该方法只能在该进程中有效,当退出该进程时,赋值将不会继续存在;同时其它

mybatis三种实现方式(快速入门、mapper代理模式、注解)_小果冻。。的博客-程序员宝宝_mybatis 注解开发

ORM和Mybatis的区别Mybatis快速入门注意事项: 如果parameterType为简单类型(基本类型+String),#{}中的参数名称可以任意

InputStreamReader的编码_a13393665983的博客-程序员宝宝

InputStreamReader的编码 InputStreamReader的编码 - simmone - BlogJavasimmoneInputStreamReader的编码问题: 从Zip文件中读数据,中间使用了InputStreamReader,...

Android 调用系统相机拍照并返回路径 和 调用系统图片浏览器选择图片_ssss3333gggg的博客-程序员宝宝

//创建两个 按钮  , 一个 点击 调用系统图片浏览器 ,一个点击调用系统相机               // 调用系统图片浏览器photo_file.setOnClickListener(new View.OnClickListener() {@Overridepublic void onClick(View v) {Intent intent = new I

mysql中bcnf_数据库 - BC范式(BCNF)_张近微的博客-程序员宝宝

BC范式(BCNF)关系模式R∈1NF,若X→Y且Y  X时X必包含码,则R ∈BCNF。这个定义表明,如果非平凡的FD X→Y中X不包含码,那么Y必定传递依赖于候选键,因此R不是BCNF模式。等价于:每一个决定属性因素都包含码如果关系模式R是1NF,且每个属性(包括主属性和非主属性)都不传递依赖于R的候选码,那么称R是BCNF的模式。若R∈BCNF所有非主属性对每一个码都是完全函数依赖所有的主...

NIO学习之Channel通道(与缓冲区组合实现文件的复制和转移)_东北一棵松的博客-程序员宝宝

本篇博文我们主要记录一下通道的一些基础概念,并且使用通道+缓冲区实现文件的复制和转移。

随便推点

MAC窗口管理神器--Moom_Walter-Chen的博客-程序员宝宝

这款多功能窗口移动兼缩放工具融合了 Cinch,Divvy,Spectacle 等同类软件的看门本领,能够快速修改当前窗口大小并放置在指定位置,Moom 默认操作点设立在了窗口左上角的绿色按钮上,将鼠标hover在绿钮上就会弹出一个选择菜单,里面有五种尺寸可选,单击选项即可变化窗口大小,并能将窗口移动到指定位置。第一次使用需要设置:安装好鼠标悬停再最大化按钮上就可以使用了,

计蒜客--T1140--假搜索_queque_heiyaa的博客-程序员宝宝

扫雷游戏是一款十分经典的单机小游戏。它的精髓在于,通过已翻开格子所提示的周围格地雷数,来判断未翻开格子里是否是地雷。现在给出nn行mm列的雷区中的地雷分布,要求计算出每个非地雷格的周围格地雷数。注:每个格子周围格有八个:上、下、左、右、左上、右上、左下、右下。输入格式第一行包含两个整数nn和mm,分别表示雷区的行数和列数。1 \le n \le 100, 1 \le ...

自建网盘教程之:使用可道云搭建私有云网盘,无需数据库_weixin_33924770的博客-程序员宝宝

网盘狂魔VPS小学生又来了,今天和大家分享的是使用可道云搭建私有云网盘教程。可道云的英文名叫KodExplorer,在很久之前也叫芒果云,是国人开发的基于Web技术的私有云和在线文档管理的开源解决方案。可道云采用windows操作界面,具有专业在线编辑器,支持Office的在线预览和编辑,可多人协同编辑作业,文档历史版本回溯;更有Photo...

r语言决策树c4.5案例,C4.5主要思想与决策树实例_penddymkq~的博客-程序员宝宝

ICDM于2006年底评选数据挖掘十大经典算法,C4.5(分类决策树)居首,前五名算法分别是C4.5, k-Means,SVM, Apriori,EM。大部分的算法对我们都很熟悉。C4.5居首主要因为其简单易懂,可解释性强。特别是在企业的具体业务应用过程中,模型的可解释性占有相当大的权重。本文主要基于R介绍决策树,并简单介绍一下随机森林。1、决策树简介:决策树是一颗倒长的树,主要由根节点、分支、叶...

跟涛哥一起学嵌入式 第12集:关于 apt-get 软件安装那些事儿_宅学部落-王利涛的博客-程序员宝宝

对于很多linux/ubuntu新手来说,要想在Ubuntu系统上熟练地安装、升级、卸载软件,确实是挺考验人的一件事,会遇到各种各样的问题,有时候会把人搞得很不耐烦,打击人的学习积极性。Ubuntu一般使用apt-get命令 (ubuntu16.04版本以后也可以使用apt) 来安装、升级、卸载软件。比如我们想安装一个软件,常用下面的命令进行安装: $ apt-get install...