学习日志以及个人总结 Day 10

reply

条件语句

a>b?a:b   //真则执行a 假执行b

表达式1 ? 表达式2 :表达式3
    
       表达式1? --是真 or假
       若是真 则执行 表达式2
       若是假 则执行 表达式3

函数定义

(1).类型标识符
        返回值的类型标识符 函数名(形式参数)//函数头---规定函数的形式
    (2).函数名-------和函数功能对应
    (3).形式参数-------函数节后数据的入口
            形参----不是一定要有
                    看函数功能的需要
                    
            形参使用时:
            a个数相同
            b类型匹配
            c形参 与 实参匹配顺序
            //顺序是从右想做
            
    (4).函数体---- 完成函数具体功能的代码
    (5).返回值类型
    返回值如果没有 返回值类型写成void 
    返回的结果的类型与定义返回值类型不一致,以定义的返回值类型为准
    返回值的类型如果不写,默认为int型
    
    函数定义的位置:
    1.main函数之前
    2.main函数之后
    需要进行函数声明!


    
函数调用    


    函数调用的形式:
    add(a,b);//函数调用语句
    int ret;
    ret = add(a,d);
    
    ret = add(a,b)
{
    声明部分   //函数的身体  函数体 ------实现函数具体功能的代码
    语句部分   //
}    
如何定义函数?

eg
实现两个数求和 ?

a+b -----函数具有复用性

编程思维首先准备数据-->处理数据-->输出结果

 y = f(x) //x-->y
 
函数思维 输入数据-->处理数据-->带出结果

准备数据:
准备两个数据---形式参数需要能接收两个数据---本身为变量!

处理数据:
a+b
返回结果:
return

函数名:add
形式参数::
int a,b;//形式参数不可这样写

数据类型 形参变量名1.数据类型 形参变量名2,....

这样写  int a, int b
功能:a+b
结果:
return结果;

------------------
总结:


1.函数实现
主要是 代码逻辑
2.流程图---某一个功能块
3.main函数
    主逻辑
    针对每个功能块 画一个流程图

main函数的流程图:
打印月份天数的流程图:
判断闰年的流程图:

打印100以内的素数:
main-->printprimeNUMIn100---> //函数嵌套调用
月份天数的查询:
main-->getMouthDays-->leapyear//函数调用的本质?


栈----数据结构---先进后出(FILO)//First In Last out

linux系统上,默认情况下 8M 但其大小可以调整,

1.栈:特点:先进后出(FILO)
            8m
        主要:局部变量
        
            自动申请 自动释放
            
2.堆:
        特点:
            大!!
            手动申请 手动释放

3.字符串常量区:
    char s[10] = "hello";
    
4.全局区(静态区)
    全局变量(静态变量)
    
5.代码区:


内存的五个区

程序 = 代码 + 数据

函数的嵌套调用: 有一种特殊的嵌套调用---递归:自己调用自己
                                //即为循环的意思
        

归递: 

      1.
学习日志以及个人总结 Day 10_第1张图片

2.算法

递归的思路,来实现代码?

循环需要
1.初始条件2.结束条件3.趋于结束的操作4.循环体

递归来达到如上想法
//倒着来
递归 --------递推--->回归----递归

写出代码:
1.递推关系 //重复的
2.结束条件 //递推的最后一项

用递归思路写出1~100求和

sum(100)=sum(99)+100
sum(99)=sum(98)+99
sum(n)=sum(n-1)+n

//sum()
递归来实现: //倒着来 

sum(100)
 |--sum(99)+100
     |--sum(98)+99
         |--sum(97)+98
           ...
            |--sum(2)+3
                |--sum(1)+2
                      |--1


递归函数内部的逻辑:
1.看是否递归结束?
如果结束,返回结束时的值
2.如果没结束
继续返回上一步


              

你可能感兴趣的:(学习)