请告诉我参数 (char* s) 是什么意思??它可以接受字符数组还是只接受指针。还请告诉我如何让它接受一个字符串数组,然后根据字符串的长度动态分配内存。
最佳答案
从技术上讲,它是指向单个 char
变量的指针。但是,它也可以是指向 char
值的数组 的第一个元素的指针。您可以递增和递减指针以在字符串(s++
或 s--
)中移动,只要您不超出末端即可。
也可以在不改变指针的情况下使用索引,例如s[14] = 'a';
。
在处理 C 风格的字符串时,通常会将其用作指向 char
数组的指针。
此外,char
数组在很多情况下会衰减到指向其第一个元素的指针,例如传递给函数:
void fn (char *s) {
printf ("%s\n", s);
}
:
char xyz[50];
strcpy (xyz, "Hello");
fn (xyz);
对于 C 中的字符串数组,您可以使用 char **
,一个指向 char
指针的指针和数组。
对于 C++,您应该完全放弃 char
指针(对于字符串)和传递指针。使用 std::string
和引用类型。
关于c++ - my_string(char* s) 是什么意思?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5308660/