容易混淆的const

1020阅读 2评论2014-03-29 do_my_heart
分类:C/C++


点击(此处)折叠或打开

  1. #include<stdio.h>

  2. void fun(const int *p)
  3. {
  4.     int **pp = &p;
  5.     **pp = 89;
  6. }

  7. int main(void)
  8. {
  9.     //请注意,关键字const并不能把变量变成常量!!!在一个符号前加上const限定符
  10.     //仅仅表示这个符号不能被【赋值】也就是它的值对于这个符号来说是【只读的】
  11.     //但是这并不能防止通过程序内部甚至是外部的方法修改这个值
  12.     //const常用来限定函数的形参,这样改函数不能修改实参所指的数据(老实说还是可以.见fun函数),但是其他函数可以

  13.     const int limit = 10;

  14.     //表示 limit_p 指向的变量值不能被改变,但是 limit_p 指针本身的值可以改变
  15.     //它可以指向别的地方,然后解引用得到不同的值.
  16.     const int * limit_p = &limit;
  17.     int ** limit_pp;
  18.     int i = 30;

  19.     printf("now limit_p 指向 i,*limit_p = %d \n",*limit_p);
  20. // *limit_p = 10;

  21.     limit_p = &limit;
  22.     limit_pp = &limit_p;
  23.     **limit_pp = 99;

  24. // fun(&limit);

  25.     printf("通过二级指针,修改了 const int limit = 10:此时\nlimit = %d\n",limit);

  26.     return 0;
  27. }


上一篇:没有了
下一篇:more命令简单实现

文章评论