指针做形参,这个程序的目的是实现字符串的相加减

#include <stdio.h>
#include <string.h>
#include <ctype.h>
#define N 9
long ctod( char *s )
{ long d=0;
while(s)
if(isdigit( s)) { //这里为什么要写s
/found/
d=d
10+*s-'0'; //这里为什么要减去‘0’
/found/
s++;
}
return d;
}
long fun( char a, char b )
{
/found/
return ctod(a)+ctod(b); //这又为什么不写
a,
b
}
void main()
{ char s1[N],s2[N];
do
{ printf("Input string s1 : "); gets(s1); }
while( strlen(s1)>N );
do
{ printf("Input string s2 : "); gets(s2); }
while( strlen(s2)>N );
printf("The result is: %ld\n", fun(s1,s2) );
}


#include <stdio.h>
#include <string.h>
#include <ctype.h>
#define N 9

long ctod( char *s )
{ 
    long d=0;

    while(s)

        if(isdigit(s)) { //这里为什么要写s  ,这里的isdigit函数是判断s是不是数字字符,s就是当前正在操作的字符
            /found/
            d = d10 + *s - '0'; //这里为什么要减去‘0’  ,减'0'是为了把数字字符转换为对应的数值
            /found/
            s++;
        }

    return d;
}

long fun( char a, char b )
{
    /found/
    return ctod(a)+ctod(b); //这又为什么不写a,b   ,因为ctod( char *s )函数只有一个参数s所以只能放一个参数在里面
}

void main()
{ 
    char s1[N],s2[N];
    do
    { 
        printf("Input string s1 : "); gets(s1); }
    while( strlen(s1)>N );
    do
    { 
        printf("Input string s2 : "); gets(s2); }
    while( strlen(s2)>N );
    printf("The result is: %ld\n", fun(s1,s2) );
}