主函数如下:
int Max(const int* arr, int len)
{
int tmp = arr[0];//保存最大值
for (int i = 0; i < len; i++)
{
if (arr[i] > tmp)
tmp = arr[i];
}
return tmp;
}
int main()
{
int arr[] = {1,3,7,89,0,23,45,67};
int t = Max(arr,sizeof(arr)/sizeof(arr[0]));
printf("%d\n",t);
return 0;
}
/*
* 局部变量:定义在函数内部的变量,包括形参.只在函数内部有效,默认值为随机值
* 野指针:也称为悬挂指针,就是你没有访问权限的指针(地址),这个地址可能不存在
* NULL:空指针,明确表示当前是无效指针
* 结论:父函数调用子函数,想通过子函数修改父函数变量的值(实参),简单的说
* 就是形参的改变能够影响实参,必须满足两个条件:1.传指针;2.解引用
* const:定义常量,让它修饰的变量变成只读
* 普通变量,可读可写
* 1.基本(内置)类型,对于const是透明的.
* 2.const限定它的"直接右边"
* const在C语言中的主要应用,用于修饰形参是指针,且不允许修改的地方
* 一维数组名arr表示整个数组,只有如下情况:
* 1.在定义数组的同一个函数中,求sizeof(arr)表示求整个数组占用的字节数
* 2.在定义数组的同一个函数中,&arr+1表示加整个数组的大小
* 除上面以外,数组名都表示数组首元素(第一个)的地址
* 注意,形参如果写成数组,它实际上是一个指针
* 结论:数组如果作为参数传递,需要传数组名和数组长度.只有字符串不需要传长度
*
*/