免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 1143 | 回复: 7
打印 上一主题 下一主题

请教关于const的问题 [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2004-11-21 15:19 |只看该作者 |倒序浏览
const char *a = "asdf";
char const *a = "asdf";
这两种定义有什么区别?

我用gcc测试发现都是不能修改a的内容、可以修改a的地址

论坛徽章:
0
2 [报告]
发表于 2004-11-21 17:07 |只看该作者

请教关于const的问题

没有区别

论坛徽章:
0
3 [报告]
发表于 2004-11-21 17:11 |只看该作者

请教关于const的问题

原帖由 "新丁" 发表:
const char *a = "asdf";
char const *a = "asdf";
这两种定义有什么区别?

我用gcc测试发现都是不能修改a的内容、可以修改a的地址



你就算不加上const也不能修改内容,回去看看什么叫做字符串常量吧。

论坛徽章:
0
4 [报告]
发表于 2004-11-21 18:37 |只看该作者

请教关于const的问题

你就算不加上const也不能修改内容,回去看看什么叫做字符串常量吧。


不好意思,我图省事所以把例子写成那样了,只是想问const char 和 char const 的区别。
从没用过“char const”,今天比较闲,忽然想起曾见到一个说法:这两种声明一个不能修改内容另一个不能修改地址,所以就写个小程序测了一下,结果两种都是不能修改内容。测试程序是这个:

  1. int main()
  2. {
  3.         char str[10] = "qwer";

  4.         char a[10];
  5.         strcpy(a, "1234");

  6.         const char *b = a;
  7.         char const *c = a;

  8.         strcpy(b, "asdf");   //报错
  9.         strcpy(c, "asdf");   //报错
  10.         b = str;       //正确
  11.         c = str;       //正确
  12. }
复制代码



或许是我记错了,又或许当初看到的就是错的。

论坛徽章:
0
5 [报告]
发表于 2004-11-21 19:03 |只看该作者

请教关于const的问题

试试

  1.      const char * const s
复制代码

论坛徽章:
1
荣誉版主
日期:2011-11-23 16:44:17
6 [报告]
发表于 2004-11-21 19:40 |只看该作者

请教关于const的问题

看本版的精华区。

论坛徽章:
0
7 [报告]
发表于 2004-11-22 09:17 |只看该作者

请教关于const的问题

谢谢,明白了

论坛徽章:
0
8 [报告]
发表于 2004-11-22 10:09 |只看该作者

请教关于const的问题

const char与char const是一样的语义的。
但是:
const char *aChar;
char* const aChar;
是有区别的。
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP