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

必备技能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++中预先定义好的,所以我们不必声明其原型。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值