use*_*280 1 c pointers pass-by-reference
我尝试使用该change()函数来更改内容y.我要问,为什么y不能改变,当我删除*分配时x至"abc"?
另外,我发现它&*x是一样的&y,这是否意味着指针的地址x被指定为与指向的内容的地址相同*y?另外,为什么&x不等于"abc"?
我的代码:
void change(char *x) {
*x = "abc";
printf("S3: %x\n", &x);
printf("S4: %x\n", &*x);
}
int main() {
char *y = "def";
printf("S1: %x\n", &y);
printf("S2: %x\n", &*y);
change(&y);
printf("result: %s\n", y);
return 0;
}
Run Code Online (Sandbox Code Playgroud)