c – 字符串到char *函数
发布时间:2020-12-16 10:14:46 所属栏目:百科 来源:网络整理
导读:c / c的新手.我对以下代码有疑问: char* string2char(String command){ if (command.length() != 0) { char *p = const_castchar*(command.c_str()); return p; }}void setup() {}void loop() { String string1 = "Bob"; char *string1Char = string2char(s
c / c的新手.我对以下代码有疑问:
char* string2char(String command){ if (command.length() != 0) { char *p = const_cast<char*>(command.c_str()); return p; } } void setup() {} void loop() { String string1 = "Bob"; char *string1Char = string2char(string1); String string2 = "Ross"; char *string2Char = string2char(string2); Serial.println(string1Char); Serial.println(string2Char); } 这基本上反复输出: Ross Ross 我知道我没有理解指针如何在这里工作的概念 – 有人能够解释它吗?我将如何改变它,以便它可以显示: Bob Ross 解决方法
这个功能:
char* string2char(String command){ if (command.length() != 0) { char *p = const_cast<char*>(command.c_str()); return p; } } 没有多大意义,它按值获取字符串并返回指向其内部缓冲区的指针,并且使用了constnes(不要这样做).当你返回已经被破坏的对象的值时,你会得到一些奇怪的行为,通过ref传递它.另外我很好奇为什么你需要做所有这些事情,你不能只是通过: Serial.println(string1.c_str()); Serial.println(string2.c_str()); (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |