const char* CONST_STRING = "wangqi"; 这个赋值语句为什么不对?

GInewmember 2014-03-14 04:31:10
弱问诸位大婶,关于这个赋值语句const char* CONST_STRING = "wangqi";错误原因的详细分析。如果是 char* const CONST_STRING = "wangqi"; 为何就正确? "wangqi"是一个字符串常量赋值给一个指针常量,这不矛盾吗?
...全文
114 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
GInewmember 2014-03-17
  • 打赏
  • 举报
回复
引用 5 楼 baichi4141 的回复:
一个全局变量被多个文件包含,重复定义 一个全局常量被多个文件包含——常量自带static属性,多个模块彼此看不到其他文件的这个变量,不会重复定义 "wangqi"是一个常量字符数组,将其首元素指针赋值给一个元素,没有问题
懂了,正是我想要的
zhuyf87 2014-03-17
  • 打赏
  • 举报
回复
楼主好像没有区分: 指向const常量的指针(常量指针) const指针(指针常量) 指向const常量的const指针
baichi4141 2014-03-17
  • 打赏
  • 举报
回复
一个全局变量被多个文件包含,重复定义 一个全局常量被多个文件包含——常量自带static属性,多个模块彼此看不到其他文件的这个变量,不会重复定义 "wangqi"是一个常量字符数组,将其首元素指针赋值给一个元素,没有问题
GInewmember 2014-03-17
  • 打赏
  • 举报
回复
引用 1 楼 jmppok 的回复:
const char* CONST_STRING = "wangqi"; 好像经常这么用,也没报错啊
写到头文件中,该头文件被多次包含会报错。
GInewmember 2014-03-17
  • 打赏
  • 举报
回复
引用 2 楼 turingo 的回复:
报什么错?
引用 楼主 GInewmember 的回复:
弱问诸位大婶,关于这个赋值语句const char* CONST_STRING = "wangqi";错误原因的详细分析。如果是 char* const CONST_STRING = "wangqi"; 为何就正确? "wangqi"是一个字符串常量赋值给一个指针常量,这不矛盾吗?
这个初始化语句写到头文件中,然后被多个文件包含,make时会报错collect2: ld returned 1 exit status;
图灵狗 2014-03-14
  • 打赏
  • 举报
回复
报什么错?
引用 楼主 GInewmember 的回复:
弱问诸位大婶,关于这个赋值语句const char* CONST_STRING = "wangqi";错误原因的详细分析。如果是 char* const CONST_STRING = "wangqi"; 为何就正确? "wangqi"是一个字符串常量赋值给一个指针常量,这不矛盾吗?
jmppok 2014-03-14
  • 打赏
  • 举报
回复
const char* CONST_STRING = "wangqi"; 好像经常这么用,也没报错啊

65,208

社区成员

发帖
与我相关
我的任务
社区描述
C++ 语言相关问题讨论,技术干货分享,前沿动态等
c++ 技术论坛(原bbs)
社区管理员
  • C++ 语言社区
  • encoderlee
  • paschen
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
  1. 请不要发布与C++技术无关的贴子
  2. 请不要发布与技术无关的招聘、广告的帖子
  3. 请尽可能的描述清楚你的问题,如果涉及到代码请尽可能的格式化一下

试试用AI创作助手写篇文章吧