我正在尝试理解这种算法,它可以就地反转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;
}
}
}
答案 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)
在字符串前使用“”时,它是一个字符指针。 这也被视为字符数组,其中在“”之后输入的字符串将是该数组的名称。