嵌入式C语言初级编程 随堂笔记

复习)指针的功能:存放变量的地址 ; 间接操作变量  ; 可以任意指向。

一.函数可以把相对独立的某个功能抽象出来,使之成为程序中的一个独立实体。可以在同一个程序或其他程序中多次重复使用。

核心重点就是重复使用代码。

意义:是面向过程编程的基本单元。

一个函数完成一个基本功能。

二.函数类型:

1.内置函数:语由言系统提供;用户无须定义,也不必在程序中作类型说明;只需在程序前包含有该函数定义的头文件;

注意点:若包含头文件后,仍无法使用使用链接 -lm  (面试的笔试题一般默认不让使用内置函数)

常用内置函数:double sqrt(double x)  计算x的平方根

double pow(double x, double y)   计算x的y次幂

double ceil(double x)      求不小于x的最小整数,并以double形式显示

double floor(double x)    求不大于x的最大整数,并以double形式显示

int toupper(int x)     如果x为小写字母,则返回对应的大写字母

int tolower(int x)    如果x为大写字母,则返回对应的小写字母

int rand(void)      产生一个随机数

2.自定义函数:程序员自已编写的函数

返回值类型  函数名  参数列表   函数体

函数体中计算的结果可以通过return 返回给外部使用  外部可以通过参数列表想函数体中 传值。

3.函数声明

返回值类型   函数名   参数列表;

使用:当一个函数的定义在main()之后,若main()中有调用该函数,那么,必须在main()之前添加该函数的声明。

4.函数的调用

4-1嵌套调用  void fun_b(){xxxxx;}

void fun_a(){fun_b();xxxxx;}

void main(){fun_a();xxxxx;}

4-2递归调用(函数调用自己本身)

void fun_a()

{

xxxxx;

fun_a();

xxxxx;

}

递归函数的特点:(1)递归结束的条件(2)递归公式

递归调用一般会有if_else

5!=5*4!

1!=1

优点:代码简单明了

缺点:执行过程中耗费的资源多

input:5

main()

fact(5)

a*=fact(4)

a*=fact(3)

a*=fact(2)

a*=fact(1)

return 1;

危害:当递归层数越多时,可能会发生段错误。因为资源会被耗尽。

求:非伯纳阶数的第n位上的值是多少?

1 1 2 3 5  8 13 31  34.。。。。。

if(1==num||2==num)

return 1;

else

return fun(num-1)+fun(num-2)

5.变量的作用范围(作用域)

5-1作用域:某些事物的有效区域

局部变量:函数或语句块({大括号内的叫语句块})中的变量

例如:1.int main()

{

int a;//局部变量

}

2.

int fun(int b)//局部变量b

{

}

作用域:变量定义------》所在函数的结束处

全局变量:函数外部的变量

作用域:可以在任何函数中使用

思考:若一个函数中的局部变量和全局变量同名了,会怎么样?

答案:局部变量会覆盖全局变量的作用域。

6.变量的存储类型:静态和动态的。

auto 自动变量

int main()

{

auto int a;//等价于 int a;

}

register 寄存器变量(操作快)

regitster int i;

for(i=0;i<10000000000;++i)

{

xxxxxxxx

}

static  静态变量

作用域

局部变量      定义     ----return        定义---------return

static 局部变量         ----return        定义---------程序结束

时间: 2024-10-12 15:30:15

嵌入式C语言初级编程 随堂笔记的相关文章

C# 语言基础(随堂笔记)

写一些随堂记得笔记,算是另一个笔记本..                     C# 数据类型                string是引用类型:  int,Double是值 类型:                string=字符串(不是数值/):int=整数(不能出现小数点)long=整数(比int大):Double(大数值):类型转换        (强制转换/隐式转换):(引用值和数值之间是不可以强制转换):             强制转换  在变量前边加(例如int\doubl

嵌入式 Linux C语言(十一)——C语言模块化编程

嵌入式 Linux C语言(十一)--C语言模块化编程 一.C语言模块化编程 所谓模块化编程,就是指一个程序包含多个源文件(.c 文件和 .h 文件),每个模块即是一个.c文件和一个.h文件的结合,头文件(.h)中是对于该模块接口的声明.C语言模块化编程中对.c..h文件的潜规则: 1..c 文件主要负责实现,也就是定义函数:.h 文件主要负责声明,比如函数声明.宏定义等,结构的定义.自定义数据类型一般也放在头文件中,不能在.h文件中定义变量.将一个功能模块的代码单独编写成一个.c文件,然后把该

Java编程思想总结笔记Chapter 2

本章介绍Java程序的基本组成部分,体会到Java中几乎一切都是对象. 第二章   一切都是对象 目录: 2.1 用引用操纵对象 2.2 必须由你创建所有对象 2.3 永远不需要销毁对象 2.4 创建新的数据类型:类 2.5 方法.参数和返回值 2.6 构建一个Java程序 2.7 你的第一个Java程序 2.8 注释和嵌入式文档 2.9 编码风格 2.1 用引用操纵对象 一切都看作对象,操纵的标识符实际上是对象的一个"引用",遥控器(引用)操纵电视机(对象),想调控电视,只需通过遥控

R语言基础编程技巧汇编 - 前言

前 言 R语言是近年来迅速崛起的用于数据分析和数据挖据的编程语言,它由一批统计学家开发,进而广泛应用于各种需要进行统计分析的行业.在大数据时代,其优雅的编码风格.包罗万象的开发包.强大的数据处理能力,吸引了来自各个领域从事数据分析相关工作的人员. R语言是强大自由的,但是其学习曲线也是陡峭的.本人具有C/C++,C#,Python等多种语言的开发经验,就本人的体会,从R语言初级开发水平进阶到中级开发水平,要比其他编程语言更加困难,往往很多初学者就在这个阶段放弃了,相当可惜.另外,对于大量没有很多

【转】《windows核心编程》读书笔记

这篇笔记是我在读<Windows核心编程>第5版时做的记录和总结(部分章节是第4版的书),没有摘抄原句,包含了很多我个人的思考和对实现的推断,因此不少条款和Windows实际机制可能有出入,但应该是合理的.开头几章由于我追求简洁,往往是很多单独的字句,后面的内容更为连贯. 海量细节. 第1章    错误处理 1.         GetLastError返回的是最后的错误码,即更早的错误码可能被覆盖. 2.         GetLastError可能用于描述成功的原因(CreatEvent)

《C#高级编程》读书笔记

<C#高级编程>读书笔记 C#类型的取值范围 名称 CTS类型 说明 范围 sbyte System.SByte 8位有符号的整数 -128~127(−27−27~27−127−1) short System.Int16 16位有符号的整数 -32 768~32 767(−215−215~215−1215−1) int System.Int32 32位有符号的整数 -2 147 483 648~2 147 483 647(−231−231~231−1231−1) long System.Int

《简明Python编程》核心笔记(1~5章)

2014年8月20日 <简明Python编程>核心笔记  (1~5章) 昨天和今天两天时间里,把<简明Python编程>这一本书学完了,包括书上的代码.现把核心笔记记录下来,以便以后复习. 第一章 简介 Python语言是少有的一种可以称得上即简单又功能强大的编程语言.你将惊喜地发现Python语言是多么地简单,它注重的是如何解决问题而不是编程语言的语法和结构. Python的特点: 简单 易懂 免费.开源 高层语言:高级语言 可移植性:可以移植在许多平台上.包括Linux.Win

JAVA并发编程实战 读书笔记(二)对象的共享

<java并发编程实战>读书摘要 birdhack 2015年1月2日 对象的共享 JAVA并发编程实战读书笔记 我们已经知道了同步代码块和同步方法可以确保以原子的方式执行操作,但一种常见的误解是,认为关键之synchronized只能用于实现原子性或者确定临界区.同步还有另一个重要的方面:内存可见性. 1.可见性 为了确保多个线程之间对内存写入操作的可见性,必须使用同步机制. 在没有同步的情况下,编译器.处理器以及运行时等都可能对操作的执行顺序进行一些意想不到的调整.在缺乏足够同步的多线程程

学习编程是否做笔记的思考

做编程是否做笔记的思考: 做笔记的目的是将来怕忘.什么东西是重要的怕将来忘掉?1.需要记得东西:你自己的体会.经验.这些东西怕忘了,需要记笔记.2.什么不用记: 网上.书上随手可得的东西,没必要花时间记. 语言只是一门工具,精通工具的唯一手段就是熟练使用. 此外,编程又是一门语言,语言就是要多练才能熟练掌握. 所以,通常来说,学编程的时候不需要做笔记. 回到学习一门新语言的问题.可以有两种办法检验你是否学会了一门新语言:你可以用这个语言,做个实际项目:或者你可以教别人学会这个语言. 注:主要是自