【无标题】指针与函数

一、指针

深入理解C语言指针
地址: 计算机对内存空间的编号(1字节),相当于门牌号
指针: 本质就是地址, 相当于 对 地址的抽象称呼
指针变量: 特殊数据类型, 专门 保存地址 的变量
注意:
指针保存的地址一定要是有效地址
不要非法访问内存, 不然运行时会报段错误
写代码时, 注意给指针赋初值, 不然可能会操作 野指针(指针内部地址随机, 不确定的值)

1.一级指针

定义

存储类型 数据类型 * 指针名;
eg:
int * p; //只能保存 int 类型 变量的地址
char * q; //只能保存 char 类型 变量的地址
double * f; //只能保存 double 类型 变量的地址
short * m; //只能保存 short 类型 变量的地址
数据类型: 指的是 指针 保存地址 中的数据类型
数据类型 体现的是 读取数据的方式, 读取数据的单元个数(空间大小), 读取几个字节的内容
int * 是一种新的数据类型, 指针类型, 去修饰p变量, 说明"p变量"存放的是一个"int类型变量"的地 址

2.指针的运算

①算数运算
②关系运算
③sizeof()

3.二级指针和多级指针

存放一级指针地址的指针变量

基本格式: 存储类型 数据类型 * * 指针名;

二、函数

c语言之函数 -----学习笔记

1.函数的定义

完成特定的功能的程序模块,消除重复的工作,提高工作效率
函数的分类:
库函数:给用户直接调用的函数
自定义函数:用户自己写的函数
怎么去写一个函数:
函数的声明:
提前告诉计算机我后面有这个函数,开辟对应的空间,定义在头文件下,主函数上
一般形式:存储类型 数据类型 函数名(数据类型 形参1,数据类型 形参2.。。。。);
注意:分号不要省略
函数的定义:写函数的功能
存储类型 数据类型 函数名(数据类型 形参1,数据类型 形参2.。。。。)
{
功能模块;
返回值;可以没有,根据你的功能来定,返回值的数据类型一定要和函数的数据类型保持一致
}
函数的调用:函数名(实参)
注意:实参的个数和数据类型要和形参保持一致

2.封装函数

数据类型 函数名( 形式参数 ) 
{ 
功能代码; 返回值;

 }
数据类型 函数名( 数据类型 形参1, 数据类型 形参2, 数据类型 形参3 ) 
{ 

功能代码; 

return 返回值;
 }
 int main() 
{

}
main() 
{

}

数据类型:
指的是返回值的数据类型, 如果没有返回值, 就写void
如果省略不写, 默认为int

函数名:
符合标识符命名规则, 最好能见名知意

形式参数:
要传入函数内部使用的数据定义, 没有就可以不写 或 写 void
可以有多个, 用逗号分隔开, 但是数据类型不能省略
形参会在函数调用时被定义, 函数结束就被释放, 是一个局部变量
函数被调用时, 将实际参数的值复制给形参变量

return:
结束函数, 并将数据传给调用者, 只能返回一个数据
没有返回数据就可以不写 或 写 return;

3.函数的调用

在 其他函数内部调用, 也可以自己调用自己(递归函数)
必须在函数内部调用函数

{
//函数内 函数名( 实际参数 );
变量 = 函数名( 实际参数 );
printf(“%d\n”, 函数名(参数)); //直接将函数的返回值输出到终端上
}

实际参数:
如果该函数没有形式参数(空白或void), 则不写
实际参数的 数据类型以及个数 要和形式参数一一对应
调用函数时, 将 实际参数的值 复制给 形式参数
可以是变量, 可以是常量, 可以是表达式, 只会将最终结果复制给形式参数

变量/返回值:
接收函数的返回值, 如果函数没有返回值, 就不用接收
变量的类型 应该 和函数返回值 的数据类型一致

4.函数的声明

说明程序中有这个函数
通过函数的声明 能够了解 函数的 返回值类型 参数个数 参数类型
函数的声明放在 头文件下方 , 主函数前方, 封装函数就可以放在主函数后面

数据类型 函数名(形式参数);
数据类型 函数名( 数据类型 形参1, 数据类型 形参2, 数据类型 形参3 );
//声明时可以省略 形参变量的名字
数据类型 函数名( 数据类型 , 数据类型 , 数据类型 ); int func(int, char, char *);

5.如何写一个函数

  1. 思考函数的功能 - 函数名
  2. 思考函数的返回值 - 返回值的含义 及 类型
  3. 思考函数的参数 - 参数的个数 参数的数据类型
  4. 思考功能代码的实现 - 当作main函数去写

三、函数指针

函数指针和指针函数用法和区别
【C语言进阶】⑥函数指针详解

本质是一个指针

四、指针函数

指针函数的用法

本质是一个函数

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值