warning:deprecated conversion from string constant to 'char *'

warning:deprecated conversion from string constant to ‘char *’ 解决方式

#include <iostream>
using namespace std;

int fuc(char *a)
{
    cout << a << endl;
}
int main()
{
    fuc("hello");
}

Linux 环境下当GCC版本号比較高时,编译代码可能出现的问题。

主要原因是:

char * 指针指向的字符串是同意改动的,将其作为形參。意味着在函数的某处代码可能改动其指向字符串。

而理论上,我们传给函数的字面常量是没法被改动的。

解决方法1.

把函数形參 參数类型改动为const char *。

解决方法2.

假设肯定函数中不会对形參指向变量进行改变。

能够用(char *)进行强制转换。

posted @ 2017-06-27 16:49  gccbuaa  阅读(248)  评论(0编辑  收藏  举报