要使用返回值切换字符,我可以执行以下操作:

char toggle_char(char my_char) {
    return my_char ^ 0x20;
}

int main(void) {

    char my_char = 'a';
    my_char = toggle_char(my_char);
    printf("My Char: %c\n", my_char);
    my_char = toggle_char(my_char);
    printf("My Char: %c\n", my_char);

    return 0;
}

如何使用就地指针执行相同的操作?例如,我可以这样做:
int main(void) {
    char my_char = 'a';
    printf("My Char: %c\n", my_char);
    toggle_char(my_char);
    printf("My Char: %c\n", my_char);
}

最佳答案

就地更改意味着您在同一地址位置工作,而不是使用其他一些临时地址变量。
因此,这里需要将变量的地址传递给函数,函数签名必须将指向变量的指针作为参数。
你的功能是

void toggle_char(char *my_char) {
    *my_char ^= 0x20;
}

你需要称之为
toggle_char(&my_char);

关于c - 使用指针切换字符,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/57780491/

10-11 22:12
查看更多