char*是常量吗,char[]呢?

品茶 2010-04-25 02:15:14
RT
...全文
414 16 打赏 收藏 转发到动态 举报
写回复
用AI写文章
16 条回复
切换为时间正序
请发表友善的回复…
发表回复
na2650945 2010-04-25
  • 打赏
  • 举报
回复
[Quote=引用 2 楼 lhcwjy 的回复:]
当用这样的方式时: char *s="abc";s指向的内容是常量。
[/Quote]
对的。
s不是常量。
btx2397 2010-04-25
  • 打赏
  • 举报
回复
拿分的。
yzx714 2010-04-25
  • 打赏
  • 举报
回复
char* s="Hello";//s不是常量,不过它指向字符串字面值
GResume 2010-04-25
  • 打赏
  • 举报
回复
不明真相的群众 前来界分
十八道胡同 2010-04-25
  • 打赏
  • 举报
回复
[Quote=引用 4 楼 delphiwcdj 的回复:]
char *s="abc";// s指向的内容是常量。
char a[]="abc";
char *s=a;// s是变量
[/Quote]
好例子
Zusammenhang 2010-04-25
  • 打赏
  • 举报
回复
搬搬标准:
c++:
2.13.4 String literals
2.Whether all string literals are distinct (that is, are stored in nonoverlapping objects) is implementationdefined.The effect of attempting to modify a string literal is undefined.

c:
6.4.5 String literals
6 It is unspecified whether these arrays are distinct provided their elements have the
appropriate values. If the program attempts to modify such an array, the behavior is
undefined.


aimsam 2010-04-25
  • 打赏
  • 举报
回复
学习经典问题啊.
yshuise 2010-04-25
  • 打赏
  • 举报
回复
第一个是,第二个不是。
selooloo 2010-04-25
  • 打赏
  • 举报
回复
char * s1 = "aaa";
s1是变量,指向的内容是常量

char s2[] = "aaa";
s2是常量,指向的内容是变量

单纯的char *是啥也看不出来的
zhangweiit 2010-04-25
  • 打赏
  • 举报
回复
原则上来说,被const限制的,就是常量
char * s1 = "aaa";
s1是常量,因为"aaa"在编译的时候 的类型是 const char *,然后,s1直接指向这一段内存

char * s2[] = "aaa";
s2是可变的,因为上面的语句做了两步,在转化为const char *之后,又把里面的内容逐一填充到s2的内存里
cattycat 2010-04-25
  • 打赏
  • 举报
回复
4楼的例子不错。
zuiyuezhou888 2010-04-25
  • 打赏
  • 举报
回复
同意4楼
s是直接指向常量区的“abc” 其值不能修改
而a指向的是把“abc”复制到栈上的值 可以修改
delphiwcdj 2010-04-25
  • 打赏
  • 举报
回复
[Quote=引用 2 楼 lhcwjy 的回复:]

当用这样的方式时: char *s="abc";s指向的内容是常量。
[/Quote]

char *s="abc";// s指向的内容是常量。
char a[]="abc";
char *s=a;// s是变量
liutengfeigo 2010-04-25
  • 打赏
  • 举报
回复
char*是常量吗,是一个指向字符型的指针吧。
char[]呢是数组啊
这2个的里面的值都可以改变的啊,怎么会是常量
白云飘飘飘 2010-04-25
  • 打赏
  • 举报
回复
当用这样的方式时: char *s="abc";s指向的内容是常量。
mstlq 2010-04-25
  • 打赏
  • 举报
回复
没写const,从语法层面上看,都不是常量

64,678

社区成员

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

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