我试图根据一些任意条件提前终止一个字符串,方法是:
void end_string_early(char string[], int len) {
int i;
char j;
for (i=0;i<len;i++) {
j = string[i];
if (arbitrary_condition(j)) {
string[i] = "a";
}
}
}
我得到编译错误:
警告:赋值从没有强制转换的指针生成整数
让我感到困惑的是,如果我对 int 数组执行完全相同的操作(将值更改为另一个 int,而不是 a),那么它可以完美运行。也许这与论点的传递方式有关?(虽然我的印象是所有数组都是由 ref 传递的)我不完全确定,这是我第一次接触 C(通过 K&R 书工作)。