大佬教程收集整理的这篇文章主要介绍了c – 类型为“const char *”的值不能用于初始化“char *”类型的实体,大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。
#include <iostream>; using namespace std; int main() { int x = 0; //variable x created int cars (14);//cars is created as a variable with value 14 int debt{ -1000 };//debt created with value 1000 float cash = 2.32; double credit = 32.32; char a = 'a';//for char you must use a single quote and not double char* sandwich = "ham"; return 0; }
编辑:我正在使用2017年的视觉工作室社区
const char Hello[] = "Hello,world!"; char* jello = Hello; // Not allowed,because: jello[0] = 'J'; // Undefined behavior!
哎呦! const char *是一个指向const char的非const指针.如果将其值赋给非const char *,则会丢失其const属性.
指向非const char的const指针将是char * const,如果需要,您可以整天初始化char *.
你可以,如果你真的想要,用const_cast< char *>(p)实现这个,我偶尔也会这样做,但它通常是严重设计缺陷的标志.如果您实际上让编译器发出指令以写入由字符串常量别名的内存,则会得到未定义的行为.可能出错的许多事情之一是某些实现会将常量存储在只读内存中并崩溃.或者相同的内存字节可能会被重复用于多个目的,因为毕竟,我们警告过你永远不要改变它.
顺便说一句,C中的规则是不同的.这仅仅是为了与没有const关键字的C的早期版本向后兼容,并且您永远不应该编写对字符串常量使用非const别名的新代码.
以上是大佬教程为你收集整理的c – 类型为“const char *”的值不能用于初始化“char *”类型的实体全部内容,希望文章能够帮你解决c – 类型为“const char *”的值不能用于初始化“char *”类型的实体所遇到的程序开发问题。
如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。
本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。