你必须知道的指针基础-5.指针的几个小应用案例 一、使用指针传出分解后的数字 二、自己动手实现strlen()函数

  实现一个方法“多个返回值”的效果:返回一个三位数数字的个位、十位、百位。这里,我们借助指针来”返回“分解后的结果。这种应用也是最常见的指针应用。

// fun1:分解一个三位数,传递个位、十位和百位数字
int parseNumber(int num,int* g,int* s,int* b)
{
    if(num < 100 || num > 999)
    {
        // 只允许100~999的数字
        return -1;
    }

    *g = num % 10;
    *s = (num / 10)%10;
    *b = (num/100)%10;

    return 1;
}

  测试数字为365,调用parseNumber函数,将要返回的值的地址作为参数传递:

int main(int argc, char *argv[])
{
    int num = 365;
    int g,s,b;
    if(parseNumber(num,&g,&s,&b))
    {
        printf("%d %d %d
",b,s,g);
    }
    return 0;            
}

  运行结果如下图所示:

你必须知道的指针基础-5.指针的几个小应用案例
一、使用指针传出分解后的数字
二、自己动手实现strlen()函数

二、自己动手实现strlen()函数

  我们知道strlen是计算字符串的长度,其内部是通过判断是否以' '作为结束符,虽然其不是一个安全的方式,但是却是各大C教材中最常见的函数。这里,我们来自己实现一个strlen函数,利用指针的移动来辅助计算长度,这也是指针的一个最常见的应用。

// fun2:自己模拟实现strlen函数
int myStrlen(char* str)
{
    int len = 0;
    while(*str != '