C语言入门系列 - 指针与函数、指针函数、函数指针
第一节 C 语言基础以及基本数据类型
第二节 C 语言运算符
第三节 C 语言控制语句
第四节 C 语言自定义函数
第五节 C 语言修饰变量的关键字
第六节 C 语言构造数据类型–数组
第七节 C 语言字符串
第八节 C 语言指针
第九节 指针与函数、指针函数、函数指针
第十节 数组与指针、二级指针&NULL&void 指针
第十一节 结构体
第十二节 链表
第十三节 共用体union,枚举enum,宏定义#define,条件编译,const与指针
C语言–图书管理项目
指针与函数介绍
指针在函数里面的使用。
函数的哪个地方?
函数三要素: 返回值类型 (函数指针)
形参:形参类型
函数名:指针指向函数,直接使用指针名调用函数 (指针函数)
一、指针形参类型
指针作为形参类型使用,必须传递地址 – 传递数组的地址进去。
// 编译器会自动将 char str[] – 转换成 char *s
// int nums[] – 转换成 int *nums – sizeof
数组传递到函数里面去的时候,传递的是首元素的地址。
函数调用:
给形参开启空间 – 如果开辟和实参同样的空间会浪费内存大量的空间,尤其是数组中元素比较多的时候。
如果设计成传递首地址的形式,只需要开启一个 4/8 字节大小的空间即可,然后通
过地址的偏移可以获取到所有的数据。
解决在函数中获取数组的长度? – 传递一个长度值进入函数 —所有对的数组都适用。
数组传递的时候传递的只是首元素的地址,如果想在函数中获取数组长度,可以统一将数组长度传入到函数。
如果传递时字符串,那么可以不传递长度,因为字符串有一个结束符号’\0’,z 在函数内部 strlen()、 while和‘\0’进行自定义的计数,都可以获取到数组的长度。
使用函数打印数组以及求数字的最大最小值。(函数只能返回一个值,所以又把求最大最小值分成两个函数)
#include<stdio.h>
void pri(int *arr,int len){
int i;
for(i=0; i<len; i++){
printf("%d ",*(arr+i));
}
printf("\n");
}
int max(int *arr,int len){
int i,max = *arr;
for(i=1; i<len; i++){
if(max < *(arr+i)<