请教 char *str="123"; 是啥意思?C++编译不能通过,但是百度百科是这样写的
http://baike.baidu.com/link?url=0-QuOASj0M4ts-XYd9K-kQusoexwye3rVsUi4QKRkv0M8_xqhHU8D3ypH6bCyj70QptFzbe61F09oOgnHlpltq
[解决办法]
改成这样。
char const*str="123";
char *str="123"; 是啥意思?C++编译应该也能通过吧,只有个警告
C++ 为啥要警告呢?
"123"是个字符串常量, 相应的指针类型应该为char const*str,如果少了个const,编译器就警告了.
好吧。。谢谢
这里的char const* str="123"; 是不是这个意思
从某个内存地址开始保存一个4个字节长度的内容,'123\0',这个内存区域占用4个字节的空间
而这个内存区域本身没有名称,也就是没有普通的变量名?
"123" 是个字符串字面量呀,哪来的变量名! 一般放在.rodata段,使用时通过所在内存区域的内存起始地址访问.
这个不对呀,"123"的类型是 char const* ,类型不一样呀.
字符串常量必须要定义成指针类型?