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