函数笔记与指针初探

函数:
a.是完成特定任务的独立程序代码。
b.语法规则定义了函数的结构和使用方式。

为什么要用函数?
a.可以省去编写重复代码的苦闷。
b.可以让程序更加模块化,提高代码的可读性。
c方便后期修改,完善。

种类:
1.内置函数;
a.C语言系统提供
b.需要在程序前包含定义函数的头文件
2.自定义函数
a.带参数
b.不带参数

常用内置函数如下:
在这里插入图片描述

函数的三要素:

 ①返回值:一个函数可以返回一个值。return_type 是函数返回的值的数据类型。有些函数执行所需的操作而不返回值,在这种情况下,return_type 是关键字 void。
 ②参数列表:参数就像是占位符。当函数被调用时,您向参数传递一个值,这个值被称为实际参数。参数列表包括函数参数的类型、顺序、数量。参数是可选的,也就是说,函数可能不包含参数。
③函数声明:告诉编译器函数的名称、返回类型和参数

形参与实参:

形式参数(形参):定义函数名和函数体时需要用的参数,目的是用来接收调用该函数时传递的参数。
实际参数(实参):传递给被调用函数的值。

区别1
形参只能是变量,在被定义的函数中,必须指定形参的类型。
实参可以是常量、变量、表达式、函数等,
区别2
没有确定的值
无论实参是何种类型的量,在进行函数调用时,它们都必须具有确定的值,以便把这些值传送给形参。 因此应预先用赋值,输入等办法使实参获得确定值。
区别3
形参变量在未出现函数调用时,并不占用内存,只在调用时才占用。调用结束后,将释放内存。
开辟内存存储数据

递归的基本原理

① 每级函数调用都有自己的变量;
② 每次函数调用都会返回一次,当函数执行完毕后,控制权将被传回上一级递归,程序必须按顺序逐级返回递归;
③ 递归函数中位于递归之前的语句,均按被调函数的顺序执行;
④ 递归函数中位于递归之后的语句,均按被调函数相反的顺序执行;
⑤ 递归函数必须包含可以让递归停止的语句。

联系
形参和实参的类型应相同或赋值兼容

指针

C语言的两种变量:
变量(普通变量)存储内容值
地址变量(指针变量)存储地址值

  1. 格式
    类型名 指针变量名;
    注:
    (1)定义变量(普通变量, 指针变量)都必须在前面有类型名
    (2)在定义指针变量时, 指针变量名前的""表示现定义的是一个指针类型的变量. 星号并不是指针变量名的一部分, 只是一个标志
    (3)指针变量专门来存地址, 禁止将一个整型值直接赋给一个指针变量
  2. 指针变量的引用
    "&"取地址运算符, 通过&运算符可以取出普通变量的地址
    "*"指针运算符, *可以取出指针变量所指向的普通变量的值(间接引用普通变量)
    注:
    (1)可以通过赋值使一个指针变量“指向”某一普通变量(指针变量=&普通变量)
    (2)在C语言中正确的做法是先让指针变量指向一个确定的存储单元后, 再通过该指针变量引用它所指向的存储单元
    (3)变量名(普通变量 指针变量)都表示其存储单元内的值
    p1=p2; /p1指向了p2 所指向的单元/
    (4)若指针变量p指向变量a, 即将变量a的地址赋给了指针变量p
    如: int a=20, *p=&a;
    则有下列结果:
    A *p<=>a
    B p<=>&a
    C &p〈=〉&a〈=〉 p &与互逆
    D *&a <=> *p<=>a
    E (*p)++ a++ 都是给变量a的值加1。
    (*p)-- a–
    ++(*p) ++a ++*p
    –(*p) --a –p
    (5)所有的指针变量在内存中分配的字节数相同 sizeof()
    int p int是指针所指向内容的类型
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值