const 你明白吗?

  问题:const变量 & const 限定的内容
  下面的代码编译器会报一个错误,请问,哪一个语句是错误的呢?
  typedef char * pStr;
  char string[4] = “abc”;
  const char *p1 = string;
  const pStr p2 = string;
  p1++;
  p2++;
怎么样?问题在哪里?
    答案与分析:
    问题出在p2++上。
    1)、const使用的基本形式: const char m; 限定m不可变。
    2)、替换1式中的m, const char *pm; 限定*pm不可变,当然pm是可变的,因此问题中p1++是对的。
    3)、替换1式char, const newType m; 限定m不可变,问题中的charptr就是一种新类型,因此问题中p2不可变,p2++是错误的。
摘抄自 21ic bbs 《C语言中const的用法》 http://bbs.21ic.com/viewthread.php?tid=128422&highlight=const

分享到: 更多
版权申明:

本站保留所有原创文章的版权,本站地址:奔跑的博客[http://www.elecbench.com]

原创文章转载时请注明出处,并添加文章所在页面的链接:http://www.elecbench.com/247/

本站所有 2010年3月4日 以后发表、未标明为“转载”的文章均是本站原创。

发表评论


(设置自己的个性头像)

*

申请属于你的免费顶级域名