You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

ISO C++禁止字符串常量转char*警告问题求助(Arduino)

解决Arduino中"ISO C++ forbids converting a string constant to 'char*'"警告

这个警告的核心原因是:字符串常量(比如"1234")存在程序的只读内存区域,char*是指向可修改字符的指针,C++标准禁止这种隐式转换,避免你误通过指针修改只读内容引发错误。

你可以根据实际需求选以下两种正确写法:

  • 不需要修改密码字符串(多数场景适用),用const char*声明:

    const char* password = "1234"; // 可自行修改为需要的密码内容
    

    加const明确告知编译器指针指向的内容只读,完全符合C++标准,警告会直接消失。

  • 需要后续修改密码内容,改用字符数组声明:

    char password[] = "1234";
    

    字符串会被复制到可写的数组内存中,后续能通过下标修改内容(比如password[0] = '5')。也可以手动指定数组大小(要比字符串长度多1,留位置给结束符\0):

    char password[5] = "1234"; // "1234"有4个字符,加结束符共需5个位置
    

内容的提问来源于stack exchange,提问作者NIKITA

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.27 07:23:09