a" *"是什么意思?在C中的字符串之前?

时间:2014-11-07 07:08:43

标签: c string pointers

我正在尝试理解这种算法,它可以就地反转C风格的角色。我不明白*在字符串之前和“char * end”的上下文中的含义。谢谢你的帮助!

void reverse(char *str) {
    char * end = str;
    char tmp;
    if (str) {
        while (*end) {
        ++end;
        }
        --end;
        while (str < end) {
            tmp = *str;
            *str++ = *end;
            *end-- = tmp;
        }
    }
}

3 个答案:

答案 0 :(得分:0)

星号是指pointer

char tmp

这是一个角色

char * str

这是一个指向char(或者在这种情况下为char数组)的指针。

tmp = *str;

表示字符tmp填充了指针str指向的字符串数组中的第一个字符。

答案 1 :(得分:0)

你真的对学习感兴趣,那么你需要首先学习c的基本知识然后指针:

这是一个非常快速的指针教程:http://www.programiz.com/c-programming/c-pointers然后通过这个并看到字符串作为指针:https://www.cs.bu.edu/teaching/c/string/intro/

我会建议你通过它们来帮助你理解其他语言中的许多东西。 :)

答案 2 :(得分:0)

在字符串前使用“”时,它是一个字符指针。 这也被视为字符数组,其中在“”之后输入的字符串将是该数组的名称。