您的位置:首页 > 编程语言 > C语言/C++

C++ 初学者指南 第五篇(9)

2010-05-31 11:41 246 查看
必备技能5.9:返回指针

函数还可以返回指针。函数返回指针和函数返回其它类型的数据是一样的,没有什么特殊的地方。但是由于指针是C++中最容易让人迷惑的地方之一,所以在这里,我们有必要对函数返回指针进行讨论。

返回指针的时候,函数的返回类型也必须声明为指针。例如,下面的语句就声明了函数f()返回整型数指针:

int *f();

如果一个函数的返回值是指针类型,那么在函数中也必须返回一个指针。(正如其它返回值类型的函数一样,返回值必须和返回类型是兼容的。)

下面的程序演示了函数返回指针。函数get_subStr()在一个字符串中查找子串,并返一个指向第一个匹配字串的指针。如果没有匹配的字串,则返回空指针。例如,如果字符串为“I like C++”,而查找的字串是”like”,那么函数返回的就是指向”like”的指针。
//函数返回指针
#include <iostream>
using namespace std;
char *get_subStr(char *sub, char *str);
int main()
{
char *subStr;
subStr = get_subStr("three","one tow three four");
cout << "substring found: " << subStr;
return 0;
}
//返回指向字串的指针或者空指针
char *get_subStr( char *sub, char *str)
{
int t;
char *p, *p2,*start;
for ( t = 0; str[t]; t++)
{
p = &str[t];
start = p;
p2 = sub;
while(*p2 && *p2==*p)
{
p++;
p2++;
}
//如果找到了匹配的字串
if ( !*p2)
{
return start;
}
}

return 0;//没有找到字串
}


上面程序的输出如下:

substring found: three four

main()函数

我们都知道main()函数是一个非常特殊的函数,因为它是我们程序执行时第一个被调用的函数。它标记着我们程序的开始。不像那些程序总是从代码的最顶部开始执行的编程语言那样,C++程序的开始都是从调用main()函数开始,而不管main()函数是在代码的什么位置。(然而把main()函数最为程序中的第一个函数是很常见的,这样可以方便地找到程序的入口。)

一个程序中只能有一个main()函数。如果一个程序中还有多个main()函数,则程序将无法知道应该应该从哪个main()函数开始执行。实际上,大部分的编译器都是能检查并报告这种错误的。正如前面所提到的那样,由于main()函数是C++中预先定义好的,所以我们不必声明其原型。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: