计算一个数组的ASCLL码值的和,输入Hello,为什么用return count


#include <stdio.h>

int length(char a[]){
    int count=0;
    while(a[count]){
        count++; 
    } 
//    return count;
    printf("\n");
}

int main(){
    char a[50];
    int alength;
    gets(a);
    int i;
    alength = length(a); 
    int tem = 0; 
    for(i=0;i<alength;i++){
        tem += (int)a[i];
    }
    printf("%d",tem);  
}

计算一个数组的ASCLL码值的和,输入Hello,为什么用return count;输出500,使用printf("\n')就输出527

count就是字符串的长度啊。20行的循环就是遍历每个字符串字符进行ASCII求和。你注释掉了return count,那么这个length函数就没有返回值了啊

length 这个函数 是 计算 数组的元素个数,当然要返回计算出来的总数了,需要 return count

一个函数不写return,默认返回最后一个访问的变量
你写return count,返回的是count的值
你不写return,返回的是a[count]的值
我这里测试,写return,输入hello,返回532
不写return,输入hello,返回0