c编程Ascii值

时间:2013-07-06 05:53:39

标签: c char ascii

让我们说英文字母A到Z的值从1开始.A = 1,B = 2,C = 3,依此类推。编写一个程序,该程序调用一个函数,该函数接受一个具有常量字符数组的人的名字,并返回一个带有Alphapets之和的整数值。将person的名称作为const char数组传递有什么好处?

2 个答案:

答案 0 :(得分:2)

假设其他人为我提供了一个非const char *并完成工作的函数。实际实现的功能是这样的:

int get_int_sum(char *name)
{
    int sum;
    //codes to calculate sum of alphas
    name[0] += 1;
    //continue
    return sum;
}

当我使用

调用该函数时
char my_name[] = "Yu Hao";
int reuslt = get_int_sum(my_name);

即使我得到了我想要的结果,my_name也会在没有我注意的情况下更改为"Zu Hao"。但是,如果函数具有

的原型
int get_int_sum(const char*name)

我确信我传递的字符串不会被修改。

答案 1 :(得分:0)

一个优点是保护数组中的元素不会改变其值 例如,这是简单的代码。

int Your_function(const char * a)
{
    a[3]    =   'A'; // this statement causes compile error.
    // do something
    return 0;
}