C++:return语句返回指针
1.函数调用:
函数有返回值 | 函数无返回值 |
---|---|
表达式形式调用 | 语句形式调用 |
2.函数声明:
通常放在主函数外,程序开始处
3.函数重载:
功能相近,取同一函数名,形参个数或类型不同。
4.默认形参值:
从最右端开始;
若在函数声明中给出默认值,则在函数定义时不能再给出默认值。
return语句终止函数的执行,并返回一个值 。
下例为return语句返回地址的情况。
#include<iostream>
#include<math.h>
#include<string.h>
#include<iomanip>
using namespace std;
//函数声明
int* input(); //输入个数不确定的学生成绩。返回存放成绩的首地址
int* resize(int* p, int oldsize, int inc);
//oldsize:原数组大小
//inc:增量
//数组元素的增加或减少,都在数组的右端进行
//函数返回数组的首地址
int main()
{
int* head, * p;
head = p = input();
while (*p >= 0)
cout << *(p++) << endl;
return 0;
}
int* input()
{
int* p = NULL, c = 0, i, x;
cout << "输入学生成绩,以-1结束:";
cin >> x;
while (x > 0)
{
p = resize(p, c, 1);
*(p + c++) = x;
cin >> x;
}
p = resize(p, c, 1);
*(p + c) = -1;
return p;
}
int* resize(int* p, int oldsize, int inc)
{
int* f, i;
if (inc == 0)
return p;
else
{
f = new int[oldsize + inc]; //动态分配
if (inc > 0)
for (i = 0; i < oldsize; i++)
*(f + i) = *(p + i);
else
for (i = 0; i < oldsize + inc; i++)
*(f + i) = *(p + i);
}
delete[] p;
return f;
}