c++ - my_string(char* s) 是什么意思?

标签 c++ c memory-management stringstream

请告诉我参数 (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/

相关文章:

c++ - 如何用GDI+绘制透明BMP

c++ - 没有 volatile 的互斥锁功能是否足够?

c - 什么时候必须使用 malloc 分配内存?

iphone - 这个错误是什么意思? malloc : *** error for object 0x103f000: pointer being freed was not allocated

c++ - 在这里返回临时地址是未定义的行为吗?

c++ - 在 C++ 中创建文件

c++ - 在 ubuntu 12.10 中的 c++ 和 netbeans 中忽略了一条指令

C 库命名约定

c - 递归函数根据步数给出不同的答案

c - Strtol()函数基本c