我阅读了标准,但仍不能确定:
#include <stdio.h>
#include <string.h>
void repl(char *restrict ap){
char *cp=strchr(ap,(int)'m');
*cp='M';
}
int main(){
char arr[] = "example";
repl(arr);
puts(arr);
return 0;
}
在函数repl
中,我曾经strchr
获取另一个用于修改对象的指针。我希望结果是第一个m
替换为M
.
但这可能是未定义的行为吗?
如果是,那么使用ap[cp-ap]='M';
代替*cp='M';
呢?