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

发表评论

邮箱地址不会被公开。 必填项已用*标注