一、编写一个程序,令其接受两个参数:一个是int型的数,另一个是int指针。函数比较int的值和指针所指的值,返回较大的那个。在该函数中指针的类型应该是什么?
知识点1:数组的两个特殊点: 1、不允许拷贝数组,所以不可以使用传值的方式使用数组参数(传值即为拷贝)
2、通常数组的传递使用的是指针形式,传递的是指针的首地址。
例子: void P_rint(const int*);
void P_rint(const int[]);//虽然不能以值传递的方式传递数组,但是可以把形参写成类似数组的形式;
void P_rint(const int[10]);//这里只是表示我们期望的数组的大小,实际传入的数组大小不一定;
知识点2:由于数组是以指针的形式传递给函数的,所以函数不知道数组的大小,指针就可能会发生越界问题。有三种方法可以解决这一点问题。
1、数组的末尾如果存在结束标记(数组存的是C风格的字符串时,末尾为结束符、空白符)
例子:while (*cp)//cp指向的内容不为空白符即可
{
cout<<*cp++<<endl;
}
2、使用标准库范围,即将数组的首指针和末尾指针都传入函数
例子:void My_function(const int *begin1, const int *end1)//使用常量指针,因为首尾位置的指针肯定是不可改变的
{
/* */
}
3、显示的传递数组的大小,将数组大小作为一个参数传入函数
例子:void