c – 为什么我会收到编译器警告,将字符串文字转换为char *,这是不是很糟糕?

c – 为什么我会收到编译器警告,将字符串文字转换为char *,这是不是很糟糕?,第1张

概述所以编译器告诉我这是从字符串文字到char *的不推荐的转换: char* myString = "i like declaring strings like this"; 我应该担心吗?这是错误的方法吗? 我需要将myString传递给一个接受char *的函数,我应该在没有这个转换的情况下正确初始化char *吗? 它甚至不应该编译.如果你需要将它传递给你确定不会改变你需要使用const ca 所以编译器告诉我这是从字符串文字到char *的不推荐的转换:

char* myString = "i like declaring strings like this";

我应该担心吗?这是错误的方法吗?

我需要将myString传递给一个接受char *的函数,我应该在没有这个转换的情况下正确初始化char *吗?

解决方法 它甚至不应该编译.如果你需要将它传递给你确定不会改变你需要使用const cast的字符串的函数,它的一个正确的用途:

functionname(const_cast<char *>("something"));

或者,如果您不想进行const转换,则可以将字符串复制到堆栈中:

char str[] = "something";functionname(str);
总结

以上是内存溢出为你收集整理的c – 为什么我会收到编译器警告,将字符串文字转换为char *,这是不是很糟糕?全部内容,希望文章能够帮你解决c – 为什么我会收到编译器警告,将字符串文字转换为char *,这是不是很糟糕?所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/langs/1219421.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-06-05
下一篇 2022-06-05

发表评论

登录后才能评论

评论列表(0条)

保存